Kibana
概念
Kibana是什么
Kibana
是一个针对Elasticsearch mysql
的开源分析及可视化平台
,使用Kibana可以`查询、查看并与存储在ES索引的数据进行交互操作
安装
自行安装
指令操作
索引操作
- 查看全部索引
GET/_cat/indices
- 查看全部索引及参数说明
GET/_cat/indices?v
//返回结果说明
health status index uuid pri rep docs.count docs.deleted
健康状态 索引状态 索引 id 主分片 副本分片 文档数 删除
store.size pri.store.size
存储大小 主分片存储大小
- 创建索引
// 创建索引 PUT/索引名
- 创建索引自定义分片
PUT/索引名
{"settings":{"number_of_shards":1, # 主分片数量
"number_of_replicas":0 # 副本分片数量
}}
- 创建索引及映射
ES数据类型说明
//字符串类型 数字类型 小数类型 布尔类型 日期类型
keyword text integer longfloatdoubleboolean date
//创建索引及其映射// 创建索引及映射 注:student为索引名 id、name、age、desc 为字段名PUT/student
{"settings":{"number_of_shards":1,"number_of_replicas":0},"mappings":{"properties":{"id":{"type":"integer"},"name":{"type":"keyword"},"age":{"type":"double"},"desc":{"type":"text"}}}}
- 查看索引及映射详细信息
GET/products/_mapping
- 删除索引
// 删除索引DELETE/索引名
文档操作
- 查询文档
GET/student/_doc/1(1为文档id)
- 查询该索引全部文档
GET/student/_doc/_search/{"query":{"match_all":{}}}
- 添加文档
// 此处 1为文档id、查询用到的就是这个id 不是下面那个id字段POST/student/_doc/1{"id":1,"name":"小明","age":"19","desc":"小明是学渣"}
- 删除文档
DELETE/student/_doc/1
- 更新文档
//更新文档 不保留原字段 PUT/student/_doc/1{"name":"ipone"}//更新文档 保留原字段POST/products/_doc/1/_update
{"doc":{"name":"明明"}}
- 批量添加
//注:json格式必须是这样 不然会报错POST/student/_doc/_bulk
{"index":{"_id":3}}{"id":3,"name":"小李","age":"22","desc":"小李是混混"}{"index":{"_id":"4"}}{"id":4,"name":"陈陈","age":"33","desc":"陈陈是老师"}
- 批量修改
POST/student/_doc/_bulk
{"update":{"_id":"2"}}{"doc":{"name":"芳芳"}}{"update":{"_id":"3"}}{"doc":{"name":"李李"}}
- 批量删除
POST/student/_doc/_bulk
{"delete":{"_id":"5"}}{"delete":{"_id":"6"}}
高级查询 Query DSL
DSL简介
Query DSL 利用Rest API传递JSON格式的请求体(Request Body)数据与ES进行交互
说白了 这个DSL就是复杂查询 包含一些分页查询、关键字查询、排序查询等操作
命令操作
- term(关键词查询)此处需要主要注意分词 因为ES存储的过程是将一段信息按照指定的分词规则进行存储,例如使用的是ik分词器,存储的信息为:“我们吃饭” ,ik分词器会将该信息分割为两个关键字 “我们” “吃饭” 进行存储,那么想根据该字段搜索文档时,需要传入的是"我们" 或者"吃饭",如果传入"我" 或者 “们” 都是搜索不到该信息的 注:如果没有指定分词器 ES默认使用的中文按字分词,也就是会将 “我们吃饭” 分割为 我、们、吃、饭 进行存储。
// 上文介绍到 ES的字符串类型分别为 keyword text ,keyword是不会进行分词存储的,也就是只有字段类型是text的时候,//才会出现上述情况。keyword必须用全部信息进行检索。// desc字段是text类型,会进行分词, ES默认中文分词是按字分词 ,故文档中只要包含是这个字的都会返回GET/student/_search
{"query":{"term":{"desc":{"value":"是"}}}}// name 是keyword类型,故不会进行分词 必须使用全部信息检索。GET/student/_search
{"query":{"term":{"name":{"value":"小明"}}}}
- range(范围查询)
// 参数说明 gt gte lt lte// 大于 大于等于 小于 小于等于GET/student/_search
{"query":{"range":{"age":{"gt":"19"}}}}
- prefix(前缀查询)
//该行为与分词无关GET/student/_search
{"query":{"prefix":{"name":{"value":"小"}}}}
- wildcard(通配符)
// 参数说明 ? *// 匹配一个 匹配多个GET/student/_search
{"query":{"wildcard":{"name":{"value":"小?"}}}}
- ids(多id查询)
GET/student/_search
{"query":{"ids":{"values":["1","2"]}}}
- bool(多条件查询)
//bool关键字 用来组合多个条件实现复杂查询//must:相当于&&//should:相当于||//must_not:相当于!不能满足任何一个GET/student/_search
{"query":{"bool":{"must":[{"ids":{"values":[1,2,3,4]}},{"term":{"desc":{"value":"小"}}}]}}}
- 多字段查询(multi_match)
//字段分词则按分词检索。GET/student/_search
{"query":{"multi_match":{"query":"小","fields":["desc","name"]}}}
- 返回指定条数(size)
// 默认10条GET/student/_doc/_search/{"query":{"match_all":{}},
"size":5}
- 分页(form)
//返回指定起始返回位置,和size实现分页GET/student/_doc/_search/{"query":{"match_all":{}},
"size":5,"from":0}
- 指定字段排序(sort)
// 参数说明 desc 降序 asc 升序GET/student/_search
{"query":{"match_all":{}},"sort":[{"age":{"order":"asc"}}]}
- 只查询指定字段(source)
GET/student/_doc/_search/{"query":{"match_all":{}},"_source":["id","desc"]}
springBoot 集成ES
主页 另一篇
本文转载自: https://blog.csdn.net/pgcdnameming/article/details/127936347
版权归原作者 一个没有梦想的程序员 所有, 如有侵权,请联系我们删除。
版权归原作者 一个没有梦想的程序员 所有, 如有侵权,请联系我们删除。