Utilizando Spring Data com Elasticsearch

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

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Spring Framework - TUTORIAL

Última atualização em: | 10944 Visualizações

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!


Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!