Elasticsearch系列——使用kibana或postman操作Elasticsearch的常用命令(一)
前言
服务器:CentOS-6.7
运行系统:windows10
JDK版本:1.8
Elasticsearch版本:5.6.6
插件:kibana、elasticsearch-head
工具:postman
一、集群
查看集群是否健康
GET /_cluster/health
二、节点
查看节点列表
后面加了 ?v 可以把表头给显示出来
GET /_cat/nodes?v
三、索引
1 查询索引
1.1 查询所有索引
GET /_cat/indices?v
1.2 查询单个索引的映射
GET /test_index/_mapping
2. 添加一个索引(通过mapping)
PUT /people
{"settings": {"number_of_shards": 3,"number_of_replicas": 1},"mappings": {"man": {"dynamic": "strict","properties": {"name": {"type": "text"},"age": {"type": "integer"},"birthday": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"address":{"dynamic": "true","type": "object"}}}}
}
"dynamic": "strict" 表示如果遇到陌生field会报错
"dynamic": "true" 表示如果遇到陌生字段,就进行dynamic mapping
"dynamic": "false" 表示如果遇到陌生字段,就忽略
3. 删除索引
3.1 删除一个索引
DELETE /people
3.2 删除多个索引
DELETE /index_one,index_two
4. 添加字段映射
PUT /people/_mapping/man
{"properties": {"tags":{"type": "text"}}
}
5. 索引的别名
5.1 创建索引的别名
PUT /test_index/_alias/test
5.2 查询索引的别名
GET /test_index/_alias/*
5.3 查询别名指向哪一个索引
GET /*/_alias/test
四、文档
1. 增加文档
1.1 自定义ID
可以自动创建索引、类型,自己定义一个id
PUT /people/man/1
{"name": "叶良辰","country": "china","age": 25,"birthday": "1993-01-01","desc": "叶良辰,本地人,狂妄自大,惹了他,会有一百种方法让你呆不下去!与赵日天是好基友,两个人风风火火闯九州"
}
1.2 随机生成ID
可以自动创建索引、类型,自动创建一个id
POST /people/man
{"name": "叶良辰","country": "china","age": 25,"birthday": "1993-01-01","desc": "叶良辰,本地人,狂妄自大,惹了他,会有一百种方法让你待不下去!与赵日天是好基友,两个人风风火火闯九州"
}
2. 修改文档
2.1全文修改
全文修改使用的是PUT命令,把所有字段都带上
PUT /people/man/1
{"name": "叶良辰","country": "china","age": 25,"birthday": "1993-01-01","desc": "叶良辰,本地人,狂妄自大,惹了他,会有一百种方法让你呆不下去!与赵日天是好基友,两个人风风火火闯九州"
}
2.2部分修改(partial update)
使用POST命令,里面使用doc修改某个字段值
POST /people/man/1/_update
{"doc": {"name": "zhangsan"}
}
2.3 通过脚本直接修改
POST /people/man/1/_update
{"script": "ctx._source.age += 10"
}
或者
POST /people/man/1/_update
{"script": {"lang": "painless","source": "ctx._source.age += 10"}
}
2.4 通过脚本的参数方式
POST /people/man/1/_update
{"script": {"lang": "painless","source": "ctx._source.age = params.age","params": {"age": 100}}
}
2.5 通过groovy脚本文件方式
首先在%ES_HOME%/config/scripts文件夹下面新建一个groovy文件,取名add-age.groovy
编辑文件,添加下列内容
ctx._source.age += param.num
执行下面的命令
POST /people/man/1/_update
{"script": {"lang": "groovy","file": "add-age","params": {"num": 15}}
}
2.6 文档不存在时的修改(upsert)
在修改document的时候,如果该文档不存在,则使用upsert操作进行初始化
POST people/man/1/_update
{"script": "ctx._source.age += 10", "upsert": {"age": 20}
}
虽然用了+=,但是,上面的结果却是20,因为文档不存在,只是进行了初始化!
3. 删除文档
3.1 删除单个文档
DELETE /people/man/1
3.2 删除type下的所有文档
POST /people/man/_delete_by_query?conflicts=proceed
{"query": {"match_all": {}}
}
4.查询文档
下面列举一些简单的查询,更高级的查询在第五部分做介绍
4.1 查询单个文档
GET /people/man/2
4.2 使用_mget批量查询文档
GET /_mget
{"docs": [{"_index": "people","_type": "man","_id": 1},{"_index": "people","_type": "man","_id": 2}]
}
index和type相同的时候,可以合并到一起:
GET /people/man/_mget
{"docs": [{"_id": 1},{"_id": 2}]
}
4.3 查询所有文档
方式一(简单查询):
GET /people/_search
方式二:
POST /people/_search
{"query": {"match_all": {}}
}
4.4 查询出某些字段内容
后面跟了 ?_source=field1,field2
GET people/man/_search?_source=name,country
{"query": {"match": {"age": "25"}}
}
4.5 查询多个索引下的多个type
GET /index1,index2/type1,type2/_search
查询所有索引下的部分type
GET /_all/type1,type2/_search
4.6 模糊查询(全文搜索)
注意:下面的“叶良辰”会被拆分成:叶、良、辰,只要name里面包含这三个字的任意一个,都会被查询到!
另外,中英文搜索会不一样,中文是以一个汉字为单位,
英文默认以一个单词为单位进行拆分
POST /people/_search
{"query": {"match": {"name": "叶良辰"}},"sort": [{"birthday": {"order": "desc"}}]
}
4.7 全文搜索的精准度
4.7.1 搜索结果中必须包括run、jump两种爱好
GET people/_search
{"query": {"match": {"hobby": {"query": "run jump", "operator": "and"}}}
}
4.7.2 使用百分比,搜索结果中必须包括6个爱好中的一半,也就是3个
GET people/_search
{"query": {"match": {"hobby": {"query": "run jump basketball football piano pingpang", "minimum_should_match": "50%"}}}
}
4.7.3 使用数量,搜索结果中必须包括3个爱好
GET people/_search
{"query": {"bool": {"should": [{"match": {"hobby": "basketball"}},{"match": {"hobby": "pingpang"}},{"match": {"hobby": "piano"}},{"match": {"hobby": "run"}}],"minimum_should_match": 3}}
}
五、高级查询
由于内容比较多,篇幅比较大,这里把文章分为两部分,本文是简单的增删改查
比较复杂的查询请参考:点击打开链接
OK,GAME OVER!
更多内容,请关注公众号:程序员高手之路
在公众号回复:es基础 即可免费获取elasticsearch视频教程(未加密)!
Elasticsearch系列——使用kibana或postman操作Elasticsearch的常用命令(一)相关推荐
- 使用kibana或postman操作Elasticsearch的常用命令
前言 服务器:CentOS-6.7 运行系统:windows10 JDK版本:1.8 Elasticsearch版本:5.6.6 插件:kibana.elasticsearch-head 工具:pos ...
- Elasticsearch系列之:Centos7安装部署Elasticsearch详细步骤
Elasticsearch系列之:Centos7安装部署Elasticsearch详细步骤 一.下载ElasticSearch安装包 二.创建ES数据存储目录 三.创建ES所属用户 四.配置用户的打开 ...
- 解析Redis操作五大数据类型常用命令
摘要:分享经常用到一些命令和使用场景总结,以及对Redis中五大数据类型如何使用cmd命令行的形式进行操作的方法. 本文分享自华为云社区<Redis操作五大数据类型常用命令解析>,作者:灰 ...
- docker 一起性重启所有镜像_docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人站在 ...
- Linux文件操作四剑客常用命令
find查找命令 find命令说明 Linux find命令用来在指定目录下查找文件 任何位于参数之前的字符串都将被视为欲查找的目录名 如果使用该命令时,不设置任何参数,则find命令将在当前目录下查 ...
- xshell 6 连接debian系统拒绝了密码_Xshell中操作Linux的常用命令,你知道几个?
作为IT人员,想必都知道Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.Xshell作为专业的终端模拟器,可以用 ...
- Linux操作汇总(常用命令、vim)
目录 linux目录架构 主要目录速查表 常用命令 ubuntu 软件操作命令 ssh与scp Vim操作 linux目录架构 在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录 ...
- 熟悉常用的HDFS操作(附录HDFS常用命令)
文章目录 1. 学习目的 2. 学习内容 3. 实验一 3.1 追加文本 3.2 覆盖文本 3.3 脚本完成 4. 实验二 4.1 下载文件脚本 4.2 输出文件内容脚本 4.3 显示单个文件信息脚本 ...
- pg_dump转移数据操作步骤及常用命令;
1.pg_dump 命令转移数据结构及数据 1.1 pg_dump 常用参数解释 1.pg_dump [选项]- [数据库名字]-f, --file=FILENAME 输出文件或目录名-F, --fo ...
最新文章
- unittest 框架学习
- 一本教我们如何避免糟糕设计的书
- Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常
- 《EMCAScript6入门》读书笔记——24.编程风格
- 35佳国外顶级品牌企业网站设计案例(上)
- python配置核_浅谈pytorch卷积核大小的设置对全连接神经元的影响
- Swift版音乐播放器(简化版),swift音乐播放器
- cmd mysql log_如何使用mysqlbinlog工具?
- BUUOJ reverse SimpleRev (爆破)
- 收藏!目标检测优质综述论文总结!
- 三个变量存在一个协整方程_存在多个协整关系,如何取舍?
- spring作用域单例和global_面试必备 | 69道Spring面试题
- 【洛谷P1972】HH的项链(求区间内有多少个不同的数---树状数组)
- 【javascript培训第一天】语言基础
- 左耳听风——笔记二:程序员练级攻略
- html5 小车动画_html5 echarts汽车仪表盘图表动画特效
- yolo极大抑制_Pytorch从0开始实现YOLO V3指南 part4——置信度阈值和非极大值抑制...
- 笔记本win10+GTX1050TI配置Tensorflow 亲测
- Python实验,用pygame做飞机大战游戏设计
- Java课程设计税率_梁勇(Danniel Liang) java教材例题:java程序购买额按税率求营业税 java中数值保留2位小数的方法...
热门文章
- 台积电第二代3nm工艺公布;推特收购事件导致大量员工离职,苹果 Meta争先抢人;微软将在亚洲市场投资游戏业务 | 每日大事件...
- 第9章 开发实例-文件保险箱
- Mac怎么设置自动关机?
- 《曾国藩家书》读书手记(修身篇二)
- python和c 情侣网名_dirge和ronin为什么是情侣名
- springboot集成mybatis-plus
- 傻妞机器人安装完整教程【最新版】- 11月24日更新
- JAVA设计一个fan类_北京信息科技大学java语言程序设计-类和对象
- 熟读高数才能理解机器学习?不,初中数学就够了
- 期货开户不要孤注一掷