一、说明
1、通过kibana操作es
2、使用dsl命令操作es
3、需要已经安装es,必须
4、需要已经安装kibana,非必须
5、若是没有装kibana,可以用PostMan之类的请求工具
二、基础知识
1、Elasticsearch和RDBMS比较
说明1: es与传统关系数据的对应关系,初学重点了解索引,字段,文档
说明2: 最重要的是索引,文档
2、可以到菜鸟过一遍介绍
https://www.cainiaojc.com/elasticsearch/elasticsearch-basic-concepts.html
~~
三、命令
1、创建索引
1)命令
PUT hg-index
说明1: hd-index即索引名
2)成功示例
~~
2、增加数据
1)格式
POST ${索引}/${类型}/${ID} ${JSON消息体}
2)示例
POST hg-index/_doc/003 { "name":"qf223x" }
3)成功示例
~~
3、修改数据
1)格式
PUT ${索引}/${类型}/${ID} ${JSON消息体}
2)示例
PUT hg-index/_doc/003 { "name":"qf223x_put" }
3)响应结果
~~
4、查询所有
1)命令
GET hg-index/_search { "query": { "match_all": {} } }
说明1: hg-index为索引
说明2: _search为关键字,固定格式,记住即可
说明3: query : {"match_all":{}},固定格式,记住即可
2)响应数据
~~
5、模糊查询-通配符
1)关键字
wildcard
2)示例
GET hg-index/_search { "query": { "wildcard" : { "name": "*223*" } } }
说明1: 通配符, *
说明2: 占位符, ?
说明3: 通配符类似mysql的like
说明4: 占位符,即占一位
3)结果
~~
6、模糊查询-前缀
1)关键字
prefix
2)示例1
GET hg-index/_search { "query": { "prefix" : { "name": "qf" } } }
3)结果1
4)示例2
GET hg-index/_search { "query": { "prefix" : { "name": "qfx" } } }
5)结果2
~~
7、模糊查询-相似度
1)关键字
fuzzy
说明1: 是一种误拼写时的fuzzy模糊搜索技术,用于搜索的时候可能输入的文本会出现误拼写的情况。
2)示例
GET hg-index/_search { "query": { "fuzzy" : { "name": { "value": "qpx", "fuzziness": 1, "prefix_length": 1, "max_expansions": 100 } } } }
说明1: fuzziness:最大编辑距离【一个字符串要与另一个字符串相同必须更改的一个字符数】。默认为AUTO。
说明2: prefix_length:不会被“模糊化”的初始字符数。这有助于减少必须检查的术语数量。默认为0。
说明3: max_expansions:fuzzy查询将扩展到的最大术语数。默认为50。
说明4: transpositions:是否支持模糊转置(ab→ ba)。默认值为false。3)结果
~~
8、查询非空值
1)构造初始化数据
POST hg-index/_doc/005 { "name":"" }
POST hg-index/_doc/004 { "name":null }
2)命令:显示所有
GET hg-index/_search { "query": { "match_all": {} } }
3)显示非空
GET hg-index/_search { "query": { "exists" : { "field" : "name" } } }
说明1: 004被过滤掉了,即null值被过滤掉了
~~
9、查询null值
1)命令
GET hg-index/_search { "query": { "bool": { "must_not": { "exists": { "field": "name" } } } } }
2)结果
~~
10、其他查询
1)参考其他博主的内容
https://blog.csdn.net/qq_45443475/article/details/127359991
~~