前言

服务器: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的常用命令(一)相关推荐

  1. 使用kibana或postman操作Elasticsearch的常用命令

    前言 服务器:CentOS-6.7 运行系统:windows10 JDK版本:1.8 Elasticsearch版本:5.6.6 插件:kibana.elasticsearch-head 工具:pos ...

  2. Elasticsearch系列之:Centos7安装部署Elasticsearch详细步骤

    Elasticsearch系列之:Centos7安装部署Elasticsearch详细步骤 一.下载ElasticSearch安装包 二.创建ES数据存储目录 三.创建ES所属用户 四.配置用户的打开 ...

  3. 解析Redis操作五大数据类型常用命令

    摘要:分享经常用到一些命令和使用场景总结,以及对Redis中五大数据类型如何使用cmd命令行的形式进行操作的方法. 本文分享自华为云社区<Redis操作五大数据类型常用命令解析>,作者:灰 ...

  4. docker 一起性重启所有镜像_docker系列四之docker镜像与容器的常用命令

    docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人站在 ...

  5. Linux文件操作四剑客常用命令

    find查找命令 find命令说明 Linux find命令用来在指定目录下查找文件 任何位于参数之前的字符串都将被视为欲查找的目录名 如果使用该命令时,不设置任何参数,则find命令将在当前目录下查 ...

  6. xshell 6 连接debian系统拒绝了密码_Xshell中操作Linux的常用命令,你知道几个?

    作为IT人员,想必都知道Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.Xshell作为专业的终端模拟器,可以用 ...

  7. Linux操作汇总(常用命令、vim)

    目录 linux目录架构 主要目录速查表 常用命令 ubuntu 软件操作命令 ssh与scp Vim操作 linux目录架构 在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录 ...

  8. 熟悉常用的HDFS操作(附录HDFS常用命令)

    文章目录 1. 学习目的 2. 学习内容 3. 实验一 3.1 追加文本 3.2 覆盖文本 3.3 脚本完成 4. 实验二 4.1 下载文件脚本 4.2 输出文件内容脚本 4.3 显示单个文件信息脚本 ...

  9. pg_dump转移数据操作步骤及常用命令;

    1.pg_dump 命令转移数据结构及数据 1.1 pg_dump 常用参数解释 1.pg_dump [选项]- [数据库名字]-f, --file=FILENAME 输出文件或目录名-F, --fo ...

最新文章

  1. unittest 框架学习
  2. 一本教我们如何避免糟糕设计的书
  3. Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常
  4. 《EMCAScript6入门》读书笔记——24.编程风格
  5. 35佳国外顶级品牌企业网站设计案例(上)
  6. python配置核_浅谈pytorch卷积核大小的设置对全连接神经元的影响
  7. Swift版音乐播放器(简化版),swift音乐播放器
  8. cmd mysql log_如何使用mysqlbinlog工具?
  9. BUUOJ reverse SimpleRev (爆破)
  10. 收藏!目标检测优质综述论文总结!
  11. 三个变量存在一个协整方程_存在多个协整关系,如何取舍?
  12. spring作用域单例和global_面试必备 | 69道Spring面试题
  13. 【洛谷P1972】HH的项链(求区间内有多少个不同的数---树状数组)
  14. 【javascript培训第一天】语言基础
  15. 左耳听风——笔记二:程序员练级攻略
  16. html5 小车动画_html5 echarts汽车仪表盘图表动画特效
  17. yolo极大抑制_Pytorch从0开始实现YOLO V3指南 part4——置信度阈值和非极大值抑制...
  18. 笔记本win10+GTX1050TI配置Tensorflow 亲测
  19. Python实验,用pygame做飞机大战游戏设计
  20. Java课程设计税率_梁勇(Danniel Liang) java教材例题:java程序购买额按税率求营业税 java中数值保留2位小数的方法...

热门文章

  1. 台积电第二代3nm工艺公布;推特收购事件导致大量员工离职,苹果 Meta争先抢人;微软将在亚洲市场投资游戏业务 | 每日大事件...
  2. 第9章 开发实例-文件保险箱
  3. Mac怎么设置自动关机?
  4. 《曾国藩家书》读书手记(修身篇二)
  5. python和c 情侣网名_dirge和ronin为什么是情侣名
  6. springboot集成mybatis-plus
  7. 傻妞机器人安装完整教程【最新版】- 11月24日更新
  8. JAVA设计一个fan类_北京信息科技大学java语言程序设计-类和对象
  9. 熟读高数才能理解机器学习?不,初中数学就够了
  10. 期货开户不要孤注一掷