【ELK】7. elasticsearch linux上操作es命令详解

摘要:
V绿色表示一切正常,黄色表示所有数据都可用,但一些副本尚未分配,红色表示不可用。3.查询es中的所有索引和所有现有索引curlhttp://192.168.6.16:9200/_cat/indices?v4.创建新的索引卷曲XPUThttp://192.168.6.16:9200/my_new_index?v5.对于新索引,插入用户的数据类型和1curlXPUT的idhttp://192.168.6.16:9200/my_new_index/user/1?pretty-D'{“name”:“Li Si”,“age”:“25”}'7.2根据ID查询此数据卷曲XGEThttp://192.168.6.16:9200/my_new_index/user/2?pretty7.3修改id为2的数据的curl XPUThttp://192.168.6.16:9200/my_new_index/user/2?pretty8.更新数据,使用POST请求,注意请求主体,格式化curlXPOSThttp://192.168.6.16:9200/my_new_index/user/2/_update?pretty10.2将年龄类型从字符串更改为数值是为了从curlXPOST中删除json中年龄值的引号http://192.168.6.16:9200/my_new_index/user/2/_update?pretty10.4如果报告错误,请使用简单脚本将年龄增加5岁。

==========

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

curl http://192.168.6.16:9200

正常状态:

【ELK】7. elasticsearch linux上操作es命令详解第1张

非正常状态:

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

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

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

2.cat检测集群健康状况

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

【ELK】7. elasticsearch linux上操作es命令详解第2张

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

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

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

【ELK】7. elasticsearch linux上操作es命令详解第3张

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

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

 再查看:

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

【ELK】7. elasticsearch linux上操作es命令详解第4张

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

type是user, id指定为1

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

【ELK】7. elasticsearch linux上操作es命令详解第5张

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

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

【ELK】7. elasticsearch linux上操作es命令详解第6张

7.修改数据

7.1先新增一条数据

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

【ELK】7. elasticsearch linux上操作es命令详解第7张

7.2 根据ID查询这条数据

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

【ELK】7. elasticsearch linux上操作es命令详解第8张

7.3修改id为2的数据

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

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

【ELK】7. elasticsearch linux上操作es命令详解第9张

7.4查询修改结果

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

【ELK】7. elasticsearch linux上操作es命令详解第10张

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

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

【ELK】7. elasticsearch linux上操作es命令详解第11张

查看更新后的数据:

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

【ELK】7. elasticsearch linux上操作es命令详解第12张

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

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

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

【ELK】7. elasticsearch linux上操作es命令详解第13张

 查看:

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

【ELK】7. elasticsearch linux上操作es命令详解第14张

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

10.1 查看数据

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

【ELK】7. elasticsearch linux上操作es命令详解第15张

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

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

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

【ELK】7. elasticsearch linux上操作es命令详解第16张

10.3 查看修改后数据

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

【ELK】7. elasticsearch linux上操作es命令详解第17张

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

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

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

查看:

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

【ELK】7. elasticsearch linux上操作es命令详解第18张

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

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

【ELK】7. elasticsearch linux上操作es命令详解第19张

13.批量插入 bulk

【注意JSON字符串格式】

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

【ELK】7. elasticsearch linux上操作es命令详解第20张

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

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

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

【ELK】7. elasticsearch linux上操作es命令详解第21张

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

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

【ELK】7. elasticsearch linux上操作es命令详解第22张【ELK】7. elasticsearch linux上操作es命令详解第23张
public static void main(String[] args) {
        File file   = new File("E:\1\myjson.json");
        FileWriter writer = null;
        int size = 200;

        try {
            writer =new FileWriter("E:\1\myjson.json");
            for (int i = 10; i < size+10; i++) {
                writer.write("{"index":{"_id":""+i+""}}"+"
"+"{"name":"张三"+i+"","age": "+i+","address":"北京"+i+""}"+"
");
            }
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }
View Code

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

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

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

【ELK】7. elasticsearch linux上操作es命令详解第24张

查看index详情:

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

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

【ELK】7. elasticsearch linux上操作es命令详解第25张

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

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

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

等价于

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

        }
    }
}
'

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

【ELK】7. elasticsearch linux上操作es命令详解第26张

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

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

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

        }
    },
    "size":10
}
'

【ELK】7. elasticsearch linux上操作es命令详解第27张

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

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

        }
    },
    "from": 10,
    "size": 10
}
'

【ELK】7. elasticsearch linux上操作es命令详解第28张

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

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

        }
    },
    "sort":{
        "age":{
            "order":"desc"
        }
    },
    "from": 0,
    "size": 20
}
'

【ELK】7. elasticsearch linux上操作es命令详解第29张

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

只返回name和address列

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

        }
    },
    "_source":[
        "name",
        "address"
    ]
}
'

【ELK】7. elasticsearch linux上操作es命令详解第30张

21.条件匹配查询 

 21.1查询age=200的数据

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "match":{
            "age":200
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第31张

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "match":{
            "address":"北京"
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第32张

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "match":{
            "address":"北京 西安"
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第33张

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "match_phrase":{
            "address":"北京 西安"
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第34张

22.布尔查询 bool

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

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "address":"北京"
                    }
                },
                {
                    "match":{
                        "address":"西安"
                    }
                }
            ]
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第35张

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

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "bool":{
            "should":[
                {
                    "match":{
                        "address":"北京"
                    }
                },
                {
                    "match":{
                        "address":"西安"
                    }
                }
            ]
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第36张

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

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "bool":{
            "must_not":[
                {
                    "match":{
                        "address":"北京"
                    }
                },
                {
                    "match":{
                        "address":"西安"
                    }
                }
            ]
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第37张

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "age":200
                    }
                }
            ],
            "must_not":[
                {
                    "match":{
                        "address":"西安"
                    }
                }
            ]
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第38张

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

curl -XPOST  http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "query":{
        "range":{
            "age":{
                "gte":25,
                "lte":30
            }
        }
    }
}
'

 【ELK】7. elasticsearch linux上操作es命令详解第39张

24.聚合查询 aggs

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "size":0,
    "aggs":{
        "group_by_name":{
            "terms":{
                "field":"name"
            }
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第40张

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

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "size":0,
    "aggs":{
        "average_age":{
            "avg":{
                "field":"age"
            }
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第41张

 按name分组,求age的平均值

curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d '
{
    "size":0,
    "aggs":{
        "group_by_name":{
            "terms":{
                "field":"name"
            },
            "aggs":{
                "average_age":{
                    "avg":{
                        "field":"age"
                    }
                }
            }
        }
    }
}
'

【ELK】7. elasticsearch linux上操作es命令详解第42张

100.删除索引

 100.1 查看所有索引信息

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

【ELK】7. elasticsearch linux上操作es命令详解第43张

100.2  删除指定索引

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

【ELK】7. elasticsearch linux上操作es命令详解第44张

100.3 再次查看

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

【ELK】7. elasticsearch linux上操作es命令详解第45张

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

免责声明:文章转载自《【ELK】7. elasticsearch linux上操作es命令详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CMMI相关知识(二)cygwin/X XDMCP连接CentOS下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Elasticsearch搜索引擎学习笔记(五)

搜索功能 数据准备   1、自定义词库     慕课网     慕课     课网     慕     课     网   2、新建立索引shop   3、建立mappings POST /shop/_mapping (7.x之前的版本:/shop/_mapping/_doc) { "properties": {...

windows 编译c++库的安装CURL、64位Boost

1.CURL 本文使用vs2010 下载: git clone https://github.com/curl/curl.git https://github.com/curl/curl vs的工具下的命令行:(一定) 32位:vcvarsall.bat x86 64位:vcvarsall.bat x64 下一步:执行curl目录下的buildconf.b...

微信公众平台开发(83) 生成带参数二维码

本文介绍在微信公众平台上如何使用高级接口开发生成带参数二维码的功能。 一、场景二维码为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。 目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时...

Elasticsearch状态API接口排障总结

ES的Restful API,共四类API: 1. 检查集群、节点、索引等健康与否,以及获取其相应状态。 2. 管理集群、节点、索引及元数据 3. 执行CRUB操作(即:增删查改) 4. 执行高级操作,如:paging,filtering等。 ES API的访问接口: TCP:9200,并且ES是基于HTT...

uniapp 富文本图片100%显示

下面的这个方法是在百度上找的,但是老是报错,一直没找到原因,索性自己就挨个检查了下,发现在过滤之前需要对传过来的值进行检测,是字符串才能让这个方法执行 filters: { formatRichText(html) { //控制小程序中图片大小 let newContent = '' newContent =...

iOS实现地图半翻页效果--老代码备用参考

// Curl the image up or down     CATransition *animation = [CATransition animation];     [animation setDuration:0.35];     [animation setTimingFunction:UIViewAnimationCurveEaseInO...