用代码讲故事——Springboot集成ElasticSearch快速入门demo
2023-10-14 04:02:46
ElasticSearch:与Springboot整合实现强大搜索
简介
在信息爆炸的时代,搜索引擎已成为我们不可或缺的工具。ElasticSearch是一款强大的分布式搜索引擎,因其全文检索能力、灵活的扩展性和高可用性而备受推崇。本文将详细介绍如何将ElasticSearch与Springboot整合,并通过代码示例演示其强大的搜索功能。
Springboot集成ElasticSearch
1. 引入依赖
在Springboot项目中,通过引入Springboot Starter依赖即可集成ElasticSearch。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>2.4.5</version>
</dependency>
2. 配置ElasticSearch
在application.properties文件中,配置ElasticSearch的连接信息。
# ElasticSearch主机地址
spring.elasticsearch.rest.uris=http://localhost:9200
# ElasticSearch集群名称
spring.elasticsearch.cluster-name=elasticsearch
# ElasticSearch节点名称
spring.elasticsearch.node.name=node-1
3. 创建实体类
创建实体类映射ElasticSearch中的文档,继承ElasticsearchRepository接口并使用@Document注解指定索引和类型。
@Document(indexName = "product", type = "_doc")
public class Product {
@Id
private Long id;
private String name;
private Double price;
// 省略其他字段
}
4. 使用ElasticSearch
Spring Data ElasticSearch提供丰富的API,用于索引、查询和删除操作。
(1)索引文档
Product product = new Product();
product.setId(1L);
product.setName("iPhone 13");
product.setPrice(9999.0);
elasticsearchRepository.save(product);
(2)查询文档
List<Product> products = elasticsearchRepository.findByName("iPhone");
(3)删除文档
elasticsearchRepository.deleteById(1L);
ElasticSearch的扩展性和高可用性
1. 扩展性
ElasticSearch可以轻松扩展,只需添加或删除节点即可。新节点会自动加入集群,并重新分片数据以确保均衡分布。
2. 高可用性
ElasticSearch使用副本机制保证数据的冗余。当主节点宕机时,副本节点会自动接管,确保搜索服务的可用性。
常见问题解答
-
ElasticSearch有哪些优势?
- 分布式和可扩展
- 全文检索能力
- 高可用性和冗余
- 丰富的API
-
如何与Springboot集成ElasticSearch?
- 引入Springboot Starter依赖
- 配置ElasticSearch连接信息
- 创建实体类并映射文档
-
如何索引文档到ElasticSearch?
- 使用elasticsearchRepository.save()方法
-
如何查询ElasticSearch中的文档?
- 使用elasticsearchRepository.findByName()等方法
-
如何删除ElasticSearch中的文档?
- 使用elasticsearchRepository.deleteById()方法