SpringCloud-深度理解ElasticSearch
Spring Cloud 和 ElasticSearch 的整合可以通过使用Spring Data ElasticSearch来实现。以下是一个简单的例子,展示如何在Spring Boot应用中配置和使用ElasticSearch。
- 添加依赖到你的
pom.xml
:
<dependencies>
<!-- Spring Boot Elasticsearch 支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- Elasticsearch客户端 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.10.0</version>
</dependency>
</dependencies>
- 配置
application.properties
或application.yml
:
spring:
elasticsearch:
rest:
uris: "http://localhost:9200" # Elasticsearch 节点地址
username: "user" # 用户名
password: "pass" # 密码
- 创建一个实体类:
@Document(indexName = "your_index_name")
public class YourEntity {
@Id
private String id;
// 其他属性
}
- 创建一个Repository接口:
public interface YourEntityRepository extends ElasticsearchRepository<YourEntity, String> {
// 自定义查询方法
}
- 使用Repository进行操作:
@Service
public class YourService {
@Autowired
private YourEntityRepository repository;
public YourEntity save(YourEntity entity) {
return repository.save(entity);
}
public List<YourEntity> searchByName(String name) {
// 使用ElasticsearchQueryBuilder构建查询
QueryBuilder queryBuilder = QueryBuilders.matchQuery("name", name);
Iterable<YourEntity> searchResult = repository.search(queryBuilder);
// 转换为List
List<YourEntity> resultList = StreamSupport.stream(searchResult.spliterator(), false)
.collect(Collectors.toList());
return resultList;
}
}
以上代码展示了如何在Spring Boot应用中配置和使用ElasticSearch。你需要替换YourEntity
和your_index_name
为你自己的实体类和索引名称,并且实现自定义的搜索方法。
评论已关闭