赞
踩
大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!
Elasticsearch是一个开源的分布式搜索引擎,提供强大的全文搜索和分析功能。本文将详细介绍如何在Java应用中集成和使用Elasticsearch来构建高效的搜索服务。
在开始之前,确保已经安装并配置好Elasticsearch服务,并且可以访问其REST API。
首先,在项目的pom.xml
文件中添加Elasticsearch的依赖:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.16.0</version>
</dependency>
package cn.juwatech.elasticsearch; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.RestClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.elasticsearch.client.ClientConfiguration; import org.springframework.data.elasticsearch.client.RestClients; import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration; @Configuration public class ElasticsearchConfig extends AbstractElasticsearchConfiguration { @Override @Bean public RestHighLevelClient elasticsearchClient() { final ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo("localhost:9200") .build(); return RestClients.create(clientConfiguration).rest(); } }
package cn.juwatech.elasticsearch; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; @Document(indexName = "products") public class Product { @Id private String id; private String name; private String description; private double price; // 省略构造方法和getter/setter }
package cn.juwatech.elasticsearch;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;
public interface ProductRepository extends ElasticsearchRepository<Product, String> {
List<Product> findByName(String name);
List<Product> findByDescription(String description);
List<Product> findByNameOrDescription(String name, String description);
}
package cn.juwatech.elasticsearch; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class ProductService { @Autowired private ProductRepository productRepository; public void saveProduct(Product product) { productRepository.save(product); } public Iterable<Product> findAllProducts() { return productRepository.findAll(); } }
package cn.juwatech.elasticsearch; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.stereotype.Service; import java.util.List; @Service public class ProductSearchService { @Autowired private ElasticsearchRestTemplate elasticsearchRestTemplate; public List<Product> searchProducts(String query) { SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.query(QueryBuilders.queryStringQuery(query)); return elasticsearchRestTemplate.queryForList( sourceBuilder.build(), Product.class); } }
本文介绍了如何利用Java语言集成Elasticsearch,实现基于Elasticsearch的高效搜索服务。从配置Elasticsearch客户端、定义文档实体、编写数据访问层到执行搜索操作,详细展示了整个实现过程。
微赚淘客系统3.0小编出品,必属精品,转载请注明出处!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。