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.
Última atualização em: | 11890 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.