首页
视频
留言
壁纸
直播
下载
友链
统计
推荐
vue
在线工具
Search
1
记一个报错GC overhead limit exceeded解决方法
942 阅读
2
ElasticSearch ES 安装 Kibana安装 设置密码
654 阅读
3
Teamcity + Rancher + 阿里云Code 实现Devops 自动化部署
339 阅读
4
解决Mybatis-Plus批量插入数据太慢,堪称神速
336 阅读
5
分布式锁Redisson,完美解决高并发问题
320 阅读
JAVA开发
前端相关
Linux相关
电商开发
经验分享
电子书籍
个人随笔
行业资讯
其他
登录
/
注册
Search
标签搜索
AOP
支付
小说
docker
SpringBoot
XML
秒杀
K8S
RabbitMQ
工具类
Shiro
多线程
分布式锁
Redisson
接口防刷
Jenkins
Lewis
累计撰写
146
篇文章
累计收到
14
条评论
首页
栏目
JAVA开发
前端相关
Linux相关
电商开发
经验分享
电子书籍
个人随笔
行业资讯
其他
页面
视频
留言
壁纸
直播
下载
友链
统计
推荐
vue
在线工具
搜索到
1
篇与
的结果
2022-01-27
ES Kibana常用的命令
示例数据下载:https://github.com/liuwen766/accounts.json# 一、群集是一个或多个节点的集合,它们一起保存整个数据,并提供跨所有节点的联合索引和搜索功能。每个群集都有自己的唯一群集名称,节点通过名称加入群集。 # 查看集群健康状态 GET /_cat/health?v # 二、节点是指属于集群的单个Elasticsearch实例,存储数据并参与集群的索引和搜索功能。可以将节点配置为按集群名称加入特定集群,默认情况下,每个节点都设置为加入一个名为elasticsearch的群集。 # 查看节点状态 GET /_cat/nodes?v # 三、Index(索引):索引是一些具有相似特征的文档集合,类似于MySql中数据库的概念 # 查看所有索引信息 GET /_cat/indices?v # 3.1 创建索引并查看 PUT /bank GET /_cat/indices?v # 3.2 删除索引并查看 DELETE /bank GET /_cat/indices?v # 四、Type(类型):类型是索引的逻辑类别分区,通常,为具有一组公共字段的文档类型,类似MySql中表的概念。注意:在Elasticsearch 6.0.0及更高的版本中,一个索引只能包含一个类型。 # 4.1 查看文档的类型 GET /bank/account/_mapping # 五、Document(文档):文档是可被索引的基本信息单位,以JSON形式表示,类似于MySql中行记录的概念。 # 5.1 在索引中添加文档 PUT /bank/_doc/2 { "name": "zhangke" } # 5.2 查看索引中的文档 GET /bank/_doc/2 # 5.3 修改索引中的文档 POST /bank/_update/1 { "doc":{"name":"lvwei5201"} } # 5.4 删除索引中的文档 DELETE /bank/_doc/1 # 5.5 对索引中的文档执行批量操作 POST /bank/_bulk {"index":{"_id":"1"}} {"name": "lvwei" } {"index":{"_id":"2"}} {"name": "zhangke" } # 六、Shards(分片):当索引存储大量数据时,可能会超出单个节点的硬件限制,为了解决这个问题,Elasticsearch提供了将索引细分为分片的概念。分片机制赋予了索引水平扩容的能力、并允许跨分片分发和并行化操作,从而提高性能和吞吐量。 # 七、Replicas(副本):在可能出现故障的网络环境中,需要有一个故障切换机制,Elasticsearch提供了将索引的分片复制为一个或多个副本的功能,副本在某些节点失效的情况下提供高可用性。 # 八、数据搜索 # 8.1 最简单的搜索,使用match_all来表示,例如搜索全部 GET /bank/_search { "query": { "match_all": {} } } # 8.2 分页搜索,from表示偏移量,从0开始,size表示每页显示的数量 GET /bank/_search { "query": { "match_all": {} } , "from": 0 , "size": 20 } # 8.3 搜索排序,使用sort表示,例如按balance字段降序排列 GET /bank/_search { "query": { "match_all": {} }, "sort": [ { "balance": { "order": "desc" } } ] } # 8.4 搜索并返回指定字段内容,使用_source表示,例如只返回account_number和balance两个字段内容: GET /bank/_search { "query": {"match_all": {}} , "_source": ["balance","account_number"] } # 8.5 条件搜索 # 8.5.1 使用match表示匹配条件,例如搜索出account_number为20的文档 GET /bank/_search { "query": {"match": { "account_number": "20" }} } # 8.5.2 文本类型字段的条件搜索,例如搜索address字段中包含mill的文档,对比上一条搜索可以发现,对于数值类型match操作使用的是精确匹配,对于文本类型使用的是模糊匹配; GET /bank/_search { "query": {"match": { "address": "mill" }} } # 8.5.2 短语匹配搜索,使用match_phrase表示,例如搜索address字段中同时包含mill和lane的文档 GET /bank/_search { "query": {"match_phrase": { "address": "mill lane" }} } # 8.6 组合搜索 # 8.6.1 组合搜索,使用bool来进行组合,must表示同时满足,例如搜索address字段中同时包含mill和lane的文档; GET /bank/_search { "query": { "bool": { "must": [ {"match": { "address": "mill" }}, {"match": { "address": "lane" }} ] } } } # 8.6.2 组合搜索,should表示满足其中任意一个,搜索address字段中包含mill或者lane的文档 GET /bank/_search { "query": { "bool": { "should": [ {"match": { "address": "mill" }}, {"match": { "address": "lane" }} ] } } } # 8.6.3 组合搜索,must_not表示同时不满足,例如搜索address字段中不包含mill且不包含lane的文档; GET /bank/_search { "query": { "bool": { "must_not": [ { "match": { "address": "mill" } }, { "match": { "address": "lane" } } ] } } } # 8.6.4 组合搜索,组合must和must_not,例如搜索age字段等于40且state字段不包含ID的文档; GET /bank/_search { "query": { "bool": { "must": [ {"match": { "age": 40 }} ], "must_not": [ {"match": { "state": "ID" }} ] } } } # 8.7 过滤搜索 # 8.7.1 搜索过滤,使用filter来表示,例如过滤出balance字段在20000~30000的文档; GET /bank/_search { "query": { "bool": { "filter": [ { "range": { "balance": { "gte": 20000, "lte": 30000 } } } ] } } } # 8.9 搜索聚合 # 8.9.1 对搜索结果进行聚合,使用aggs来表示,类似于MySql中的group by,例如对state字段进行聚合,统计出相同state的文档数量; GET /bank/_search { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword" } } } } # 8.9.2 嵌套聚合,例如对state字段进行聚合,统计出相同state的文档数量,再统计出balance的平均值; GET /bank/_search { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword" } , "aggs": { "avg_balance": { "avg": { "field": "balance" } } } } } } # 8.9.3 对聚合搜索的结果进行排序,例如按balance的平均值降序排列; GET /bank/_search { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword", "order": { "avg_balance": "desc" } } , "aggs": { "avg_balance": { "avg": { "field": "balance" } } } } } } # 8.9.4 按字段值的范围进行分段聚合,例如分段范围为age字段的[20,30] [30,40] [40,50],之后按gender统计文档个数和balance的平均值; GET /bank/_search { "size": 0, "aggs": { "group_by_age": { "range": { "field": "age", "ranges": [ { "from": 20, "to": 30 }, { "from": 30, "to": 40 },{ "from": 40, "to": 50 } ] }, "aggs": { "group_by_gender": { "terms": { "field": "gender.keyword" }, "aggs": { "avg_balance": { "avg": { "field": "balance" } } } } } } } } # 九、数据更新 POST /mallgoods_pre/_update_by_query?refresh=true { "conflicts": "proceed", "query": { "term": { "id": { "value": "189944820639256576" } } }, "script": { "params": { "img": "189946496362270720" }, "lang": "painless", "source": "ctx._source.img = params.img;\r\n" } }
2022年01月27日
141 阅读
0 评论
0 点赞