==========

1.检查ES节点是否正常启动

  1. curl http://192.168.6.16:9200

正常状态:

非正常状态:

  1>确保服务是不是正常启动了,端口用的是哪个

  2>防火墙是否关闭或者端口是否开放

  3>你的curl命令是否有问题,curl命令可能导致服务无法访问,可以尝试重启服务后,在外部浏览器访问URL地址即可。不一定非得用curl

2.cat检测集群健康状况

  1. curl http://192.168.6.16:9200/_cat/health?v

绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示不可用

3.查询es中所有索引,所有已存在的索引

  1. curl http://192.168.6.16:9200/_cat/indices?v

4.创建新的索引【索引要求是全小写字符,可以有下划线隔开】

  1. curl -XPUT http://192.168.6.16:9200/my_new_index?pretty

再查看:

  1. curl http://192.168.6.16:9200/_cat/indices?v

5.对新增的索引,插入一条数据

type是user, id指定为1

  1. curl -XPUT http://192.168.6.16:9200/my_new_index/user/1?pretty -d '{"name":"张三","age":"23"}'

6.根据ID,获取刚刚索引中新增的数据

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/1?pretty

7.修改数据

7.1先新增一条数据

  1. curl -XPUT http://192.168.6.16:9200/my_new_index/user/2?pretty -d '{"name":"李四","age":"25"}'

7.2 根据ID查询这条数据

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty

7.3修改id为2的数据

  1. curl -XPUT http://192.168.6.16:9200/my_new_index/user/2?pretty -d '{"name":"李四修改","age":"28"}'

即使用相同的新增命令操作  相同的ID,数据不同

7.4查询修改结果

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty

8.更新数据,使用POST请求,注意请求体,格式

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/user/2/_update?pretty -d '{"doc":{"name":"李四更新","age":"230"}}'

查看更新后的数据:

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty

9.更新数据的同时,新增列

就是将doc中的json数据列增加即可

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/user/2/_update?pretty -d '{"doc":{"name":"李四更新","age":"230","address":"北京东直门"}}'

查看:

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty

10.将age字段字符串类型,修改为数字类型,并使用简单脚本对其操作

10.1 查看数据

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty

10.2 将age类型由字符串更改为数值

就是将json中的age的值的引号去掉

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/user/2/_update?pretty -d '{"doc":{"name":"李四更新","age":230,"address":"北京东直门"}}'

10.3 查看修改后数据

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty

10.4使用简单脚本,对年龄增加5

如果报错。解决方法:https://www.cnblogs.com/sxdcgaq8080/p/11119420.html

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/user/2/_update?pretty -d '{"script" : "ctx._source.age += 5"}'

查看:

  1. curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty

11.删除数据,根据ID删除

  1. curl -XDELETE http://192.168.6.16:9200/my_new_index/user/2?pretty

13.批量插入 bulk

【注意JSON字符串格式】

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/user/_bulk?pretty -d '
  2. {"index":{"_id":"3"}}
  3. {"name":"赵思","age":12}
  4. {"index":{"_id":"4"}}
  5. {"name":"钱三一","age":13}
  6. '

想要看插入以后索引下的数据,查询在后面16

14.批处理语句,bulk,更新id为1的数据,删除id为3的数据

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/user/_bulk?pretty -d '
  2. {"update":{"_id":"1"}}
  3. {"doc": {"name":"张三变李四","age":25}}
  4. {"delete":{"_id":"3"}}
  5. '

15.导入批量数据集文件json文件【使用bulk批量导入】

测试的json批量数据集文件,java生成代码:

  1. public static void main(String[] args) {
  2. File file = new File("E:\\1\\myjson.json");
  3. FileWriter writer = null;
  4. int size = 200;
  5.  
  6. try {
  7. writer =new FileWriter("E:\\1\\myjson.json");
  8. for (int i = 10; i < size+10; i++) {
  9. writer.write("{\"index\":{\"_id\":\""+i+"\"}}"+"\r\n"+"{\"name\":\"张三"+i+"\",\"age\": "+i+",\"address\":\"北京"+i+"\"}"+"\r\n");
  10. }
  11. writer.flush();
  12. } catch (IOException e) {
  13. e.printStackTrace();
  14. }finally {
  15. try {
  16. writer.close();
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. }
  20. }
  21.  
  22. }

如果报错,解决方案:https://www.cnblogs.com/sxdcgaq8080/p/11119883.html

指定要导入的  索引、type、使用bulk命令  @符号后面跟json文件的绝对路径

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/user/_bulk?pretty --data-binary @/cjf/es/elasticsearch-2.3.3/data/myjson.json

查看index详情:

  1. curl http://192.168.6.16:9200/_cat/indices?v

可以看到成功批量插入了200条

===================================下来看查询(删除索引在最后)=========================================

16.查询某个索引中的所有数据

  1. curl http://192.168.6.16:9200/my_new_index/_search?q=*&pretty

等价于

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match_all":{
  5.  
  6. }
  7. }
  8. }
  9. '

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '{"query":{ "match_all":{}}}'

17.查询指定索引下的数据

【如果不指定size,默认返回10条】

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match_all":{
  5.  
  6. }
  7. },
  8. "size":10
  9. }
  10. '

18.分页查询,从第10条,返回10条

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match_all":{
  5.  
  6. }
  7. },
  8. "from": 10,
  9. "size": 10
  10. }
  11. '

19.按照age字段倒序排序 sort,取出20条

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match_all":{
  5.  
  6. }
  7. },
  8. "sort":{
  9. "age":{
  10. "order":"desc"
  11. }
  12. },
  13. "from": 0,
  14. "size": 20
  15. }
  16. '

20.只返回想查询的部分字段

只返回name和address列

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match_all":{
  5.  
  6. }
  7. },
  8. "_source":[
  9. "name",
  10. "address"
  11. ]
  12. }
  13. '

21.条件匹配查询

21.1查询age=200的数据

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match":{
  5. "age":200
  6. }
  7. }
  8. }
  9. '

21.2 查询address中包含 “北京” 的数据

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match":{
  5. "address":"北京"
  6. }
  7. }
  8. }
  9. '

21.3 查询 address中 包含“北京” 或 “西安”的所有数据 【匹配单个词语  空格分隔】

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match":{
  5. "address":"北京 西安"
  6. }
  7. }
  8. }
  9. '

21.4 查询address中包含“北京 西安” 完整词语的【短语匹配,“北京 西安”作为一个完整词语查询】、

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "match_phrase":{
  5. "address":"北京 西安"
  6. }
  7. }
  8. }
  9. '

22.布尔查询 bool

22.1布尔查询bool   and查询,必须同时满足 address中包含“北京”,又要满足address中包含“西安”

must表示所有查询必须都为真才被认为匹配

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "bool":{
  5. "must":[
  6. {
  7. "match":{
  8. "address":"北京"
  9. }
  10. },
  11. {
  12. "match":{
  13. "address":"西安"
  14. }
  15. }
  16. ]
  17. }
  18. }
  19. }
  20. '

22.2 布尔查询bool  or查询 address中包含“北京” 或者 address中包含“西安” 都可以

should 表示查询列表中只要有任何一个为真则认为匹配

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "bool":{
  5. "should":[
  6. {
  7. "match":{
  8. "address":"北京"
  9. }
  10. },
  11. {
  12. "match":{
  13. "address":"西安"
  14. }
  15. }
  16. ]
  17. }
  18. }
  19. }
  20. '

22.3  布尔查询bool   都不能满足的   既不能包含这个,也不能包含那个

must_not表示查询列表中没有为真的(也就是全为假)时则认为匹配

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "bool":{
  5. "must_not":[
  6. {
  7. "match":{
  8. "address":"北京"
  9. }
  10. },
  11. {
  12. "match":{
  13. "address":"西安"
  14. }
  15. }
  16. ]
  17. }
  18. }
  19. }
  20. '

22.4 这样,就可以布尔查询  多条件组合  查询

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "bool":{
  5. "must":[
  6. {
  7. "match":{
  8. "age":200
  9. }
  10. }
  11. ],
  12. "must_not":[
  13. {
  14. "match":{
  15. "address":"西安"
  16. }
  17. }
  18. ]
  19. }
  20. }
  21. }
  22. '

23. 范围查询 range 查询年龄25-30之间的

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "query":{
  4. "range":{
  5. "age":{
  6. "gte":25,
  7. "lte":30
  8. }
  9. }
  10. }
  11. }
  12. '

24.聚合查询 aggs

按照name进行聚合分组,然后按照记录数,从大到小排序,默认返回前10条

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "size":0,
  4. "aggs":{
  5. "group_by_name":{
  6. "terms":{
  7. "field":"name"
  8. }
  9. }
  10. }
  11. }
  12. '

25. 聚合查询 aggs ,求age的平均值

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "size":0,
  4. "aggs":{
  5. "average_age":{
  6. "avg":{
  7. "field":"age"
  8. }
  9. }
  10. }
  11. }
  12. '

按name分组,求age的平均值

  1. curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
  2. {
  3. "size":0,
  4. "aggs":{
  5. "group_by_name":{
  6. "terms":{
  7. "field":"name"
  8. },
  9. "aggs":{
  10. "average_age":{
  11. "avg":{
  12. "field":"age"
  13. }
  14. }
  15. }
  16. }
  17. }
  18. }
  19. '

100.删除索引

100.1 查看所有索引信息

  1. curl http://192.168.6.16:9200/_cat/indices?v

100.2  删除指定索引

  1. curl -XDELETE http://192.168.6.16:9200/my_new_index?pretty

100.3 再次查看

  1. curl http://192.168.6.16:9200/_cat/indices?v

==========================================

【ELK】7. elasticsearch linux上操作es命令详解的更多相关文章

  1. Linux上的free命令详解、swap机制

    Linux上的free命令详解   解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free ...

  2. Linux上的free命令详解

    解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][ ...

  3. Linux上的free命令详解-收藏

    解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][ ...

  4. 【转】Linux上的free命令详解

    解释一下Linux上free命令的输出.默认输出是KB,可以用free -m则输出是MB 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO ...

  5. Linux CAT与ECHO命令详解 <<EOF EOF

    Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: .一次显示整个文件. $ cat filename .从键盘 ...

  6. [r]Ubuntu Linux系统下apt-get命令详解

    Ubuntu Linux系统下apt-get命令详解(via|via) 常用的APT命令参数: apt-cache search package 搜索包 apt-cache show package ...

  7. Linux CAT与ECHO命令详解

    Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从 ...

  8. (转)Linux: dirname、basename命令详解

    Linux: dirname.basename命令详解 原文:http://blog.sina.com.cn/s/blog_3f63916f010143vo.html 一.dirname指令 1.功能 ...

  9. Linux 上的基础网络设备详解

    抽象网络设备的原理及使用 网络虚拟化是 Cloud 中的一个重要部分.作为基础知识,本文详细讲述 Linux 抽象出来的各种网络设备的原理.用法.数据流向.您通过此文,能够知道如何使用 Linux 的 ...

随机推荐

  1. MySQL 的一些批处理

    执行 SQL 脚本文件(https://blog.csdn.net/vebasan/article/details/7619911): mysql –u root –p 123456 < scr ...

  2. undefined reference to `BN_new'

    出现如下错误 undefined reference to `BN_CTX_new' undefined reference to `BN_new' undefined reference to `B ...

  3. xcode6新建工程

    xcode6中新建空工程 (2014-10-29 13:14:44) 转载▼ 标签: it ios 分类: iOS 升级xcode6之后,直接建立Empty工程后发现,这是太坑,真的是什么都没有啊.只 ...

  4. Python 安装cx_Oracle模块

    1.Python安装cx_Oracle模块需要安装Oracle,并在环境变量中添加Oracle的路径. 2.没有安装Oracle的需要下载一个oci.dll的文件,并把文件的路径添加到path中. 如 ...

  5. 【Spring Boot】Spring Boot之使用ImportBeanDefinitionRegistrar类实现动态注册Bean

    一.ImportBeanDefinitionRegistrar类介绍 ImportBeanDefinitionRegistrar类通过其他@Configuration类通过@Import的方式来加载, ...

  6. dstat 系统监控命令

    tat 命令很强大,可以实时监控CPU,磁盘,网络,IO,内存等. yum install -y dstat 例: dstat  #查看全部监控信息 dstat -c  #查看cpu 使用情况

  7. 构建Apache Web服务器

    Apache 是世界使用排名第一的 Web 服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一.Apache工作模式有多种,其 ...

  8. Ubuntu环境下载程序到STM32

    1 JLink方式 1.0 下载JLink 传送门:SEGGER官网 图1.0 下载JLink 1.2 安装JLink 双击打开下载文件:JLink_Linux_V644i_x86_64.deb 1. ...

  9. css 最后的终章

    相对定位:参考点 相对原来的位置 1.如果是一个单独的文档流盒子,及你姐设置了相对定位,和普通盒子一样 2.相对定位后,如果调整位置,会留下坑 作用:微调元素 子绝父相 提升层级 绝对定位 参考点:父 ...

  10. 1. jenkins 安装部署

    参考文档: https://jenkins.io/zh 准备环境 - jdk          路径: https://www.oracle.com/technetwork/java/javase/a ...