狂神elasticsearch相关代码
时间: 2023-05-09 14:04:00 浏览: 41
Elasticsearch 是一个基于 Lucene 的分布式搜索引擎,具有实时搜索、分布式、多租户、支持 RESTful Api 等特性。以下是狂神 Elasticsearch 相关代码的介绍。
1. 集成 Elasticsearch
在 Spring Boot 项目中,可以使用 Spring Data Elasticsearch 模块集成 Elasticsearch,只需要添加相关依赖和配置即可。具体代码示例如下:
pom.xml 中添加依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
```
application.yml 中添加配置:
```yaml
spring:
data:
elasticsearch:
cluster-nodes: http://localhost:9200
```
2. 创建索引、文档和搜索
在 Elasticsearch 中,索引相当于数据库,文档相当于表中的数据。可以使用 ElasticsearchTemplate 对象创建索引、文档,以及搜索数据,具体代码示例如下:
```java
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
@Autowired
private ElasticsearchRepository elasticsearchRepository;
// 创建索引
elasticsearchTemplate.createIndex(User.class);
// 创建文档
User user = new User();
user.setId(1L);
user.setName("John");
user.setAge(20);
elasticsearchTemplate.index(user);
// 搜索数据
Iterable<User> users = elasticsearchRepository.findByName("John");
```
3. 自定义查询
可以根据具体业务需求,自定义查询条件,使用 ElasticsearchTemplate 对象进行查询,具体代码示例如下:
```java
QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("name", "John"))
.mustNot(QueryBuilders.termQuery("age", 18));
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(queryBuilder)
.build();
List<User> users = elasticsearchTemplate.queryForList(searchQuery, User.class);
```
以上是狂神 Elasticsearch 相关代码的简要介绍,具体用法建议查阅官方文档或相关教程。
相关推荐















