文章目录
- 1.ES索引库操作(CRUD)
- 1.mapping常见属性(前提)
- 2.创建索引库
- 3.查询,删除索引库
- 4.修改索引库
- 2.ES文档操作(CRUD)
- 1.新增文档
- 2.查询、删除文档
- 查询返回的数据解读:
- 3.修改文档
- 3.RestClient操作(索引库/文档)(CRUD)
- 1.什么是RestClient
- 2.需要考虑前提条件(mapping的设计)
- 3.初始化JavaRestClient
- 4.JavaRestClient(索引库)操作
- 1.创建索引库
- 2.删除索引库、判断是否存在
- OOO索引操作步骤总结
- 5.JavaRestClient(文档)操作
- 1.创建文档
- 2.查询文档
- 3.更新文档
- 4.删除文档
- OOO文档操作步骤总结
- 5.批量导入数据
- 4.Elasticsearch搜索功能
- 1.DSL查询语法
- 返回的结果解读:
- 2.全文检索查询(3种)
- 1.match_all(查询所有)
- 2.match(推荐)单字段
- 3.multi_match(多字段)
- 3.精确查询(2种)
- 1.term(精确查询)
- 2.range(范围查询)
- 4.地理查询(2种)
- 5.复合查询(2种)
- 1.相关性算分
- function score query
- 2.Boolean Query(4种)
- 5搜索结果处理
- 1.排序
- 2.分页
- 3.高亮
- 总结:(4种查询,一种返回)
- 5.RestClient查询文档
- 1.match_all
- 2.match、multi_match
- 3.term、range
- 4.复合查询
- bool query
- function score query
- 5.分页和排序
- 距离排序(地理坐标)
- 6.高亮highLight
- 结果解析
- 代码示例
- 总结:查询的基本步骤
1.ES索引库操作(CRUD)
1.mapping常见属性(前提)
type地理坐标类型:例如酒店在地图上是一个点就用"type":“geo_point”
2.创建索引库
创建:PUT /索引库名
需要进行分词的属性需要指定分词器,不需要创建索引的属性指定index为false
3.查询,删除索引库
查:GET /索引库名
删:DELETE /索引库名
4.修改索引库
修改:PUT /索引库名/_mapping
只能在原有的基础上添加,无法修改,修改即报错
2.ES文档操作(CRUD)
1.新增文档
POST /索引库名/_doc/文档id
_doc是默认写法
文档id默认是keyword类型,
2.查询、删除文档
查询:GET /索引库名/_doc/文档id
查询返回的数据解读:
_version:版本,主要是指修改了的次数,_source:插入的原始文档
删除:DELETE /索引库名/_doc/文档id
3.修改文档
全量修改:PUT /索引库名/ _doc/文档id
增量修改:POST /索引库名/ _update/文档id
3.RestClient操作(索引库/文档)(CRUD)
1.什么是RestClient
我们重点学习使用Java High Level REST Client(<font style="color:rgb(0, 0, 0);">
Java高级REST客户端</font>
)
2.需要考虑前提条件(mapping的设计)
3.初始化JavaRestClient
<font style="color:#DF2A3F;">
注意步骤二</font>
<font style="color:#DF2A3F;">
步骤三可以指定多个地址</font>
4.JavaRestClient(索引库)操作
1.创建索引库
MAPPING_TEMPLATE就是mapping创建的语句,这里用常量封装了
2.删除索引库、判断是否存在
用完了也需要销毁client客户端
OOO索引操作步骤总结
5.JavaRestClient(文档)操作
1.创建文档
2.查询文档
最后需要反序列化
3.更新文档
4.删除文档
OOO文档操作步骤总结
5.批量导入数据
就是循环添加多次 IndexRequest(请看创建文档部分)
4.Elasticsearch搜索功能
中文文档:https://docs.kilvn.com/elasticsearch/docs/15.html
1.DSL查询语法
返回的结果解读:
2.全文检索查询(3种)
1.match_all(查询所有)
2.match(推荐)单字段
要把copy_to拷到一个字段
全文检索查询的一种,会对用户输入内容分词,然后去倒排索引库检索
3.multi_match(多字段)
与match查询类似,只不过允许同时查询多个字段
3.精确查询(2种)
1.term(精确查询)
2.range(范围查询)
+e是等于的意思
4.地理查询(2种)
5.复合查询(2种)
复合(compound)查询:复合查询可以将其它简单查询组合起来,实现更复杂的搜索逻辑
1.相关性算分
function score query
weight10分乘以原来的分数就是multiply的加权模式
2.Boolean Query(4种)
must_not / filter不参与算分
5搜索结果处理
1.排序
order是排序的属性,当属性只有一个的时候就可以像图1一样省略不写
2.分页
elasticsearch 默认情况下只返回top10的数据。而如果要查询更多数据就需要修改分页参数了
3.高亮
就是在搜索结果中把搜索关键字突出显示。
搜索字段与高亮字段要一致,不一致添加require_field_match属性
查看返回结果highlight就能看到高亮字段
总结:(4种查询,一种返回)
5.RestClient查询文档
1.match_all
<font style="color:#DF2A3F;">
解析结果</font>
代码解析