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 ...
随机推荐
- OpenHarmony社区运营报告(2023年4月)
本月快讯 • 2023年4月9日,OpenAtom OpenHarmony(以下简称"OpenHarmony")3.2 Release新版本发布.相比一年前的OpenHarmo ...
- 资深技术笔译总结的这7条建议,看完提PR效率倍增
战码先锋,PR征集令(以下简称"战码先锋")第二期正如火如荼地进行中,涉及OpenAtom OpenHarmony(以下简称"OpenHarmony")主干仓. ...
- C++ 编程入门指南:深入了解 C++ 语言及其应用领域
C++ 简介 什么是 C++? C++ 是一种跨平台的编程语言,可用于创建高性能应用程序. C++ 是由 Bjarne Stroustrup 开发的,作为 C 语言的扩展. C++ 为程序员提供了对系 ...
- 编译opencv: Linux编译opencv
opencv官网:https://opencv.org/releases/ github下载地址:https://github.com/opencv/opencv/releases mkdir ...
- Python3中pip3命令的用法介绍及安装配置
第一节:pip3是什么?有啥用? pip3:(Python3 Install Package ),这个英文全称是我为了更好的理解这个命令这么叫的,官方没有这对个命令的全称的解释:) python 支持 ...
- node nvm使用
背景 node 经过了一次大的改变,直接从8到了10,差别很大,但是有的项目又需要用到8,这个时候不能完全升级. 所以我们需要一个管理虚拟环境的工具. 安装 https://github.com/co ...
- c# 泛型原理(旧)
前言 说起泛型可能很多人刚才看到的时候肯定会说牛逼啊,厉害啊,这东西少写了不少代码,我总结了泛型的一个优点,那就是少写代码,额,专业点吧. 优点:增加代码的重复利用率,代码重用. 先不讲原理吧,来讲下 ...
- js深浅复制(拷贝)
从两种数据类型说起 在js中,变量的类型可以大致分成两种:基本数据类型和引用数据类型,其中基本数据类型指的是简单的数据段,包括: Undefined Null Boolean Number Strin ...
- 力扣661(java)-图片平滑器(简单)
题目: 图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度. 每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的 ...
- 牛客网-SQL专项训练19
①下列哪个语句是授予用户SQLTest对数据库Sales的CUSTOMERS表的列cid.cname的查询权限(C) 解析: 授予权限的语法: GRANT <权限> ON 表名(列名) T ...