Utilizando Spring Data com Elasticsearch

Postado em por Wolmir Cezer Garbin em Spring Framework | 103 Visualizações
Última atualização em:

O Spring Data permite que você trabalhe com o Elasticsearch utilizando objeto relacional, isso ajuda muito e neste post vou mostrar como fazer.

Para este exemplo considere a utilização de um projeto criado com Spring Boot e maven, o qual criamos outro post mostrando como criar um projeto e como funciona sua estrutura.

Para utilizar Spring Data com o Elasticsearch primeiro precisamos adicionar os dois ao nosso projeto, para isso adicionaremos as seguintes dependências:

[...]
<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.3.8.RELEASE</version>
	<relativePath/> <!-- lookup parent from repository -->
</parent>

[...]

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
[...]

Agora adicione ao application.properties as seguintes configurações:

#elastic search
spring.data.elasticsearch.properties.path.home=/home/wolmir/elastic
spring.data.elasticsearch.properties.transport.tcp.connect_timeout=120s

Note que a primeira corresponde ao caminho onde estará seu banco de dados em elasticsearch, dessa forma ajuste para um diretório válido.

Agora basta apenas criar os objetos, seguindo o seguinte exemplo:

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;


@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Document(indexName = "tags", shards = 1, replicas = 0, refreshInterval = "-1")
public class Tags {

	@Id
	private String id;
	
	private String texto;

}

Agora você já pode criar a interface data do Spring Data e fazer as operações que precisar.

import java.util.List;
import java.util.Optional;

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import br.com.viasoft.documentation.model.Tags;

public interface TagsData extends ElasticsearchRepository<Tags, String> {

}

Note que foi extendida a interface ElasticsearchRepository.

E pronto, você já pode fazer as operações básicas ou implementar os métodos seguindo a documentação do Spring Data.

Qualquer dúvida deixe nos comentários!

Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Posts relacionados


Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference

Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar