【SpringCloud微服务实战09】Elasticsearch 搜索引擎
在Spring Cloud微服务实战中,我们通常会使用Elasticsearch作为搜索引擎来提高查询效率。以下是一个简单的Elasticsearch集成示例:
- 添加依赖到
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
- 配置Elasticsearch属性,在
application.properties
或application.yml
中:
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=localhost:9300
- 创建一个Elasticsearch实体:
@Document(indexName = "product")
public class Product {
@Id
private String id;
private String name;
private double price;
// 省略getter和setter
}
- 创建Elasticsearch仓库接口:
public interface ProductRepository extends ElasticsearchRepository<Product, String> {
List<Product> findByNameContaining(String name);
}
- 使用仓库进行搜索:
@Service
public class ProductSearchService {
@Autowired
private ProductRepository productRepository;
public List<Product> searchByName(String name) {
return productRepository.findByNameContaining(name);
}
}
- 在微服务中调用搜索服务:
@RestController
public class SearchController {
@Autowired
private ProductSearchService productSearchService;
@GetMapping("/search")
public List<Product> search(@RequestParam String name) {
return productSearchService.searchByName(name);
}
}
这个简单的示例展示了如何在Spring Cloud微服务中集成Elasticsearch,并提供了一个基本的搜索接口。在实际应用中,你可能需要处理索引更新、分页、高亮搜索结果等更复杂的场景。
评论已关闭