es命令大全,elasticsearch命令详解
| Relational DB | Elasticsearch |
|---|---|
| 数据库(database) | 索引(indices) |
| 表(tables) | types |
| 行(rows) | documents |
| 字段(columns) | fields |
库表行字段,index,type,id,fields, 索引类型文档字段
创建一篇文档
PUT t1/doc/1
{
"name": "小黑的小姨妈",
"age": 18
}
index/type/id id是单个文档
查询所有索引
GET _cat/indices?v
查询指定的索引信息
GET t1
查询文档信息
GET t1/doc/1 #查询指定文档
GET t1/doc/_search #查询所有文档
删除指定索引
DELETE /t1
修改文档
PUT zhifou/doc/1
{
"name":"顾老二",
"age":30,
"from": "gu",
"desc": "皮肤黑、武器长、性格直",
"tags": ["黑", "长", "直"]
} 我们要将黑修改成黄:
POST zhifou/doc/1/_update
{
"doc": {
"desc": "皮肤很黄,武器很长,性格很直",
"tags": ["很黄","很长", "很直"]
}
}
查询字符串
方式一:
GET zhifou/doc/_search?q=from:gu
属性是from,属性值是gu的文档 方式二:
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
}
}
match条件查询,查询含有(匹配)指定字段值的文档
我们查看来自顾家的都有哪些人
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
}
}
match查询全部文档
查询zhifou索引下的doc类型中的所有文档,那就是查询全部
GET zhifou/doc/_search
{
"query": {
"match_all": {}
}
}
match_phrase(短语查询)
GET t1/doc/_search
{
"query": {
"match_phrase": {
"title": {
"query": "中国"
}
}
}
} title字段中包含短语中国
GET t1/doc/_search
{
"query": {
"match_phrase": {
"title": {
"query": "中国世界",
"slop": 2
}
}
}
}
slop了。相当于正则中的中国.*?世界。这个间隔默认为0,指定短语间隔
match_phrase_prefix(最左前缀查询)
GET t3/doc/_search
{
"query": {
"match_phrase_prefix": {
"desc": "bea"
}
}
}
desc字段bea开头字
GET t3/doc/_search
{
"query": {
"match_phrase_prefix": {
"desc": {
"query": "bea",
"max_expansions": 1
} }
}
}
max_expansions来设置最大的前缀扩展数量
multi_match(多字段查询)
方法一:
GET t3/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "beautiful"
}
},
{
"match": {
"desc": "beautiful"
}
}
]
}
}
} 方法二:
GET t3/doc/_search
{
"query": {
"multi_match": {
"query": "beautiful",
"fields": ["title", "desc"]
}
}
} multi_match甚至可以当做match_phrase和match_phrase_prefix使用,只需要指定type类型即可:
GET t3/doc/_search
{
"query": {
"multi_match": {
"query": "gi",
"fields": ["title"],
"type": "phrase_prefix"
}
}
}
GET t3/doc/_search
{
"query": {
"multi_match": {
"query": "girl",
"fields": ["title"],
"type": "phrase"
}
}
}
term查询#单个匹配项
POST _analyze
{
"analyzer": "standard",
"text": "Beautiful girl!"
}
# 结果
["beautiful", "girl"] GET w10/doc/_search
{
"query": {
"term": {
"t1": "beautiful"
}
}
}
terms查询#多个匹配项
GET w10/doc/_search
{
"query": {
"terms": {
"t1": ["beautiful", "sexy"]
}
}
}
排序查询:sort#按某个字段降序查询
查询顾府都有哪些人,并根据age字段按照降序
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
按某个字段升序查询
GET zhifou/doc/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"age": {
"order": "asc"
}
}
]
}
分页查询:from/size#
GET zhifou/doc/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"age": {
"order": "desc"
}
}
],
"from": 2,
"size": 1
} from:从哪开始查
size:返回几条结果
bool查询
must#(and)并且,满足多个条件
单个条件查询:布尔查询所有from属性为gu的数据:
GET zhifou/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"from": "gu"
}
}
]
}
}
}
多个条件查询:想要查询from为gu,并且age为30的数据
GET zhifou/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"from": "gu"
}
},
{
"match": {
"age": 30
}
}
]
}
}
}
bool查询should(or),满足一个就行
查询只要是from为gu或者tags为闭月的数据
GET zhifou/doc/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"from": "gu"
}
},
{
"match": {
"tags": "闭月"
}
}
]
}
}
}
bool查询must_not(not) 既不,也不是
查询from既不是gu并且tags也不是可爱,还有age不是18的数据
GET zhifou/doc/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"from": "gu"
}
},
{
"match": {
"tags": "可爱"
}
},
{
"match": {
"age": 18
}
}
]
}
}
}
bool查询filter 满足某个条件,某个字段还可以比较大小范围
查询from为gu,age大于25的数据 。比较符号有gt gte lt lte
GET zhifou/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"from": "gu"
}
}
],
"filter": {
"range": {
"age": {
"gt": 25
}
}
}
}
}
} 查询from是gu,age在25~30之间
GET zhifou/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"from": "gu"
}
}
],
"filter": {
"range": {
"age": {
"gte": 25,
"lte": 30
}
}
}
}
}
}
must改成should,满足下面的filter但不满足上面的match也会显示出来
GET zhifou/doc/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"from": "sheng"
}
}
],
"filter": {
"range": {
"age": {
"lte": 25
}
}
}
}
}
}
bool must filter过滤,过滤一个字段是a,并且另一个字段是b或者c
GET xxx-fsmxx_pm_rawxx_mod_unix_linux_211128/_doc/_search
{
"query": {
"bool": {
"must": [{
"range": {
"DCTIME": {
"from": 1,
"to": 1738028800000,
"include_lower": false,
"include_upper": false,
"boost": 1.0
}
}
}],
"filter": [{
"terms": {
"KPI_NO": ["20200413185034"],
"boost": 1.0
}
}, {
"terms": {
"KBP": ["6518921118106698111","6038954760944889699"]
}
}],
"adjust_pure_negative": true,
"boost": 1.0
}
},
"sort": [{
"DCTIME": {
"order": "asc",
"unmapped_type": "long"
}
}]
}
must:与关系,相当于关系型数据库中的and。should:或关系,相当于关系型数据库中的or。must_not:非关系,相当于关系型数据库中的not。filter:过滤条件。range:条件筛选范围。gt:大于,相当于关系型数据库中的>。gte:大于等于,相当于关系型数据库中的>=。lt:小于,相当于关系型数据库中的<。lte:小于等于,相当于关系型数据库中的<=。
结果过滤:_source
在所有的结果中,我只需要查看name和age两个属性,其他的不要
GET zhifou/doc/_search
{
"query": {
"match": {
"name": "顾老二"
}
},
"_source": ["name", "age"]
}
avg
查询from是gu的人的平均年龄
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_avg": {
"avg": {
"field": "age"
}
}
},
"_source": ["name", "age"]
}
首先匹配查询from是gu的数据。在此基础上做查询平均值的操作,这里就用到了聚合函数,其语法被封装在aggs中,而my_avg则是为查询结果起个别名,封装了计算出的平均值。那么,要以什么属性作为条件呢?是age年龄,查年龄的什么呢?是avg,查平均年龄。 只想看平均值
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_avg": {
"avg": {
"field": "age"
}
}
},
"size": 0,
"_source": ["name", "age"]
}
max
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_max": {
"max": {
"field": "age"
}
}
},
"size": 0
}
min
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_min": {
"min": {
"field": "age"
}
}
},
"size": 0
}
sum
GET zhifou/doc/_search
{
"query": {
"match": {
"from": "gu"
}
},
"aggs": {
"my_sum": {
"sum": {
"field": "age"
}
}
},
"size": 0
}
分组查询和分组聚合
查询所有人的年龄段,并且按照15~20,20~25,25~30分组,
GET zhifou/doc/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"age_group": {
"range": {
"field": "age",
"ranges": [
{
"from": 15,
"to": 20
},
{
"from": 20,
"to": 25
},
{
"from": 25,
"to": 30
}
]
}
}
}
} 查询所有人的年龄段,并且按照15~20,20~25,25~30分组,并且算出每组的平均年龄。每个小组内的数据做平均年龄处理。
GET zhifou/doc/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"age_group": {
"range": {
"field": "age",
"ranges": [
{
"from": 15,
"to": 20
},
{
"from": 20,
"to": 25
},
{
"from": 25,
"to": 30
}
]
},
"aggs": {
"my_avg": {
"avg": {
"field": "age"
}
}
}
}
}
}
curl方法查看es集群信息:
现场磁盘空间使用情况查询
curl -XGET -u 用户:密码 "http://ip:端口/_cat/nodes?v&h=http,version,jdk,disk.total,disk.used,disk.avail,disk.used_percent,heap.current,heap.percent,heap.max,ram.current,ram.percent,ram.max,master"
好像是查看所有索引分片的吧,反正是一大片输出:
curl -XGET -u 用户:密码 "http://ip:端口/_cat/shards?v"
查看集群状态:
curl -XGET -u 用户:密码 -H "Content-Type: application/json" http://ip:端口/_cat/health?v
es命令大全,elasticsearch命令详解的更多相关文章
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- linux mount命令参数及用法详解
linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...
- 【转】linux expr命令参数及用法详解
在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...
- linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...
- linux sed命令参数及用法详解
linux sed命令参数及用法详解 http://blog.csdn.net/namecyf/article/details/7336308 1. Sed简介 sed 是一种在线编辑器,它一次处理一 ...
- Linux Bash命令关于程序调试详解
转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...
- linux dd命令参数及用法详解---用指定大小的块拷贝一个文件(也可整盘备份)
linux dd命令参数及用法详解---用指定大小的块拷贝一个文件 日期:2010-06-14 点击:3830 来源: 未知 分享至: linux dd命令使用详解 dd 的主要 ...
- (转)linux expr命令参数及用法详解
linux expr命令参数及用法详解 原文:http://blog.csdn.net/tianmohust/article/details/7628694 expr用法 expr命令一般用于整数值, ...
- (转)Linux命令之Ethtool用法详解
Linux命令之Ethtool用法详解 原文:http://www.linuxidc.com/Linux/2012-01/52669.htm Linux/Unix命令之Ethtool描述:Ethtoo ...
随机推荐
- 【Kotlin】类和对象
1 前言 Kotlin 是面向对象编程语言,与 Java 语言类似,都有类.对象.属性.构造函数.成员函数,都有封装.继承.多态三大特性,不同点如下. Java 有静态(static)代码块,Ko ...
- 【FAQ】用户访问次数不变,访问时长却突增2倍,分析服务发生数据异常该如何解决?
在产品运营的工作过程中,需要每日关注产品的核心指标变化情况,监控其整体运营状况.华为分析服务提供查看吸引新用户卡片,该卡片展示了新增用户数.人均会话次数.人均访问时长.人均页面访问数.借助该页面运营可 ...
- js获取select标签的 value 和 text
<select name="" id="test"> <option value="a1">yi</optio ...
- 建议收藏!Harmony应用配置文件概述(Stage模型)
一. 应用配置文件 每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具.操作系统和应用市场提供应用的基本信息. 在基于Stage模型开发的应用项目代码下,都存在一个app.jso ...
- 【#HDC2022】HarmonyOS体验官活动正式开启,赶快投稿赢限量奖品吧!
1. [活动简介] HDC 2022 于11月4日线上线下正式开启.历时一年,在无数开发者的共同努力下,我们汇聚了HarmonyOS生态的新成果.新体验.新开放能力,邀你参与到HarmonyOS的 ...
- 使用OpenMMLab系列的开源库时,常用的脚本合集。
使用OpenMMLab系列的开源库时,常用的脚本合集. 开源仓库:gy-7/mmlab_scripts 脚本解释: anchor_visiual.py 生成的锚框可视化 aug_test.py 自动数 ...
- pytest接口自动化搭建经验
前言:目前公司的主要产品是一个web类型的产品:需要做一些自动化,目前的想法是只做接口自动化,不做ui的一个自动化,目前的思路是先对主流程做正常校验,后期再对每一个接口做校验: 一.版本信息: pyt ...
- MAC上Cisco AnyConnect删除不干净,造成无法重新安装的解决办法
1.问题 由于直接删除而不是正常卸载,导致文件残留,无法正常安装,并且软件不可用 2.解决 2.1 终端运行命令 pkgutil --pkgs|grep com.cisco 查看cisco残留的文件 ...
- 力扣219(java&python)-存在重复元素 II(简单)
题目: 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k .如果存在 ...
- 摆脱 AI 生产“小作坊”:如何基于 Kubernetes 构建云原生 AI 平台
简介:本文将介绍和梳理我们对云原生 AI 这个新领域的思考和定位,介绍云原生 AI 套件产品的核心场景.架构和主要能力. 作者:张凯 前言 云原生(Cloud Native)[1]是云计算领域过 ...