Elasticsearch操作笔记版

文章目录

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>

代码解析

2.match、multi_match
3.term、range
4.复合查询
bool query
function score query
5.分页和排序
距离排序(地理坐标)
6.高亮highLight
结果解析
代码示例
总结:查询的基本步骤
相关推荐
不会Hello World的小苗29 分钟前
Java——列表(List)
java·python·list
二十七剑2 小时前
jvm中各个参数的理解
java·jvm
东阳马生架构3 小时前
JUC并发—9.并发安全集合四
java·juc并发·并发安全的集合
Elastic 中国社区官方博客3 小时前
Elasticsearch Open Inference API 增加了对 Jina AI 嵌入和 Rerank 模型的支持
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·jina
计算机小白一个3 小时前
蓝桥杯 Java B 组之岛屿数量、二叉树路径和(区分DFS与回溯)
java·数据结构·算法·蓝桥杯
隔壁老王1563 小时前
mysql实时同步到es
数据库·mysql·elasticsearch
快下雨了L3 小时前
C++面试笔记(持续更新...)
笔记
菠菠萝宝3 小时前
【Java八股文】10-数据结构与算法面试篇
java·开发语言·面试·红黑树·跳表·排序·lru
不会Hello World的小苗4 小时前
Java——链表(LinkedList)
java·开发语言·链表
Allen Bright4 小时前
【Java基础-46.3】Java泛型通配符详解:解锁类型安全的灵活编程
java·开发语言