es的安装:略
要求:
elasticsearch版本:7.12.1
kibana(图形化展示es)
创建测试索引库并加入测试数据
三个字段名称为:name,age,gender
类型为:text,integer,integer(es还支持其他类型)
PUT test
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "integer"
},
"gender": {
"type": "integer"
}
}
}
}
========添加三条数据=======
POST test/_doc
{
"name": "张三",
"age": 12,
"gender": 1
}
POST test/_doc
{
"name": "李四",
"age": 22,
"gender": 1
}POST test/_doc
{
"name": "小花",
"age": 21,
"gender": 0
}
测试后显示这样是成功添加
导包+配置
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency><properties>
<java.version>1.8</java.version>
<elasticsearch.version>7.12.1</elasticsearch.version>
</properties>
因为SpringBoot默认的ES版本是7.6.2,所以我们需要覆盖默认的ES版本
在启动类上增加这段配置建立和es的连接
java代码
暂时全部采用String类型(自己有兴趣可以试试其他类型)
SearchRequest request = new SearchRequest("test");
创建一个名为"test"的索引的搜索请求对象
request.source()代表要查询
.query()
括号内的参数的具体的查询条件
QueryBuilders.matchAllQuery()
所有
client.search(request, RequestOptions.DEFAULT);
client.search=>Elasticsearch提供的搜索方法
括号内接收两个参数
request:表示要执行的搜索请求
=>指定搜索的索引、查询DSL、排序方式、分页等相关设置
RequestOptions.DEFAULT:表示可选的请求选项配置
=>使用默认的设置,例如超时时间、刷新策略等。你可以根据需要指定自定义的请
求选项。
handleResponse方法:
作用:解析响应执行相关逻辑
这里的第一个getHits拿到的是这个
searchHits.getTotalHits().value;
找到total后拿到value
searchHits.getHits();
这次拿的是黑色箭头的hits,并返回一个文档数组
hit.getSourceAsString();
获取当前匹配文档的源数据,这里将获取的源数据以字符串的形式存储
Dome hotelDoc = JSON.parseObject(json, Dome.class);
转为Dome对象
System.out.println("Dome = " + hotelDoc);
打印到控制台看结果
测试
控制台打印查询测试成功
附带项目zip