使用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
}
}
}
五、高级查询
由于内容比较多,篇幅比较大,这里把文章分为两部分,本文是简单的增删改查
————————————————
版权声明:本文为CSDN博主「前方一片光明」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26230421/article/details/80366649
使用kibana或postman操作Elasticsearch的常用命令的更多相关文章
- CentOS系统操作mysql的常用命令
MySQL名字的来历MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了 ...
- 解析Redis操作五大数据类型常用命令
摘要:分享经常用到一些命令和使用场景总结,以及对Redis中五大数据类型如何使用cmd命令行的形式进行操作的方法. 本文分享自华为云社区<Redis操作五大数据类型常用命令解析>,作者:灰 ...
- git中通过实际操作来了解常用命令
基本的6个命令 常用的就下面6个命令,但是详细的可能有上百个命令. 还需要特别了解git的几个名词,workspace:工作区,Index/Stage:暂存区,Respository:本地仓库,Rem ...
- ElasticSearch入门常用命令
基于开源项目MyAlice智能客服学习ElasticSearch https://github.com/hpgary/MyAlice/wiki/%E7%AC%AC01%E7%AB%A0%E5%AE%8 ...
- elasticsearch 管理常用命令集合
elasticsearch rest api遵循的格式为: curl -X<REST Verb> <Node>:<Port>/<Index>/<T ...
- linux下操作PostgreSQL的常用命令
一般性: \copyright 显示PostgreSQL的使用和发行许可条款 \g [文件] or; 执行查询 (并把结果写入文件或 |管道) \h [名称] SQL命令语法上的说明 ...
- vc操作电脑之常用命令
1.重启计算机: ExitWindowsEx(EWX_REBOOT,0); 2.关机: ExitWindowsEx(EWX_SHUTDOWN,0); 3.注销: ExitWindowsEx(EWX_L ...
- HBase数据库增删改查常用命令操作
最近测试用到了Hbase数据库,新建一个学生表,对表进行增删改查操作,把常用命令贴出来分享给大家~ 官方API:https://hbase.apache.org/book.html#quickstar ...
- vi 常用命令行
vi 常用命令行 1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I ...
随机推荐
- JAVA中fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...
- 并发编程之CyclicBarrier
栅栏类似于闭锁,它能阻塞一组线程直到某个事件的发生.栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅栏位置,才能继续执行.闭锁用于等待事件,而栅栏用于等待其他线程. CyclicBarrier可以使 ...
- Intersection over Union(IoU) algorithms
IoU算法可用与评估两个多维度数据的相似度,举一个实际应用,做CV,目标检测,我们需要评估模型的识别准确率,不同于二元类问题,普通的评估算法不合适,于是用到了这个算法,这个算法简单易懂,评估效果也不错 ...
- .NET Core部署Windows服务
创建 首先你要确保你已经安装了.NET Core 3.0或以上版本. 老版本的Windows服务请看 这篇文章 使用命令行创建: dotnet new worker 使用Visual Studio创 ...
- Tomcat 和 JVM 性能调优总结
Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...
- What Is A Airless Pump Bottle?
What is an airless pump bottle?Unlike conventional dispensers that use a tube or suction tube to dra ...
- 解决idea无法下载通过maven添加的jar包以及下载网速过慢的问题
在idea上使用Maven来添加依赖的jar包 发现无法下载jar包 总是提示某几个包下载失败 最后发现原因有两个(版本与网速的问题 对应解决如下) 一主要是因为版本的问题 我的idea是2019年1 ...
- P1030 求先序排列 (一个非常棒的写法)
理论正确就是真正的正确,误... 就是找嘛,找到每一个对应字符,然后对应的左右子树的区间,然后就可以了. #include <bits/stdc++.h> using namespace ...
- Echarts字体和线条颜色设置操作笔记
在网上偶然看到的一篇文章 感觉不错 下面是原著地址 原著地址:https://blog.csdn.net/eastmount/article/details/52823548
- NIO的理解
一.缓冲区(Buffer):在java NIO中负责数据的存取,实际上就是数组,用于存储不用数据类型的数据,根据数据类型不同(boolean除外),提供了相应类型的缓冲区(ByteBuffer,Cha ...