【ELK】7. elasticsearch linux上操作es命令详解
==========
1.检查ES节点是否正常启动
curl http://192.168.6.16:9200
正常状态:
非正常状态:
1>确保服务是不是正常启动了,端口用的是哪个
2>防火墙是否关闭或者端口是否开放
3>你的curl命令是否有问题,curl命令可能导致服务无法访问,可以尝试重启服务后,在外部浏览器访问URL地址即可。不一定非得用curl
2.cat检测集群健康状况
curl http://192.168.6.16:9200/_cat/health?v
绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示不可用
3.查询es中所有索引,所有已存在的索引
curl http://192.168.6.16:9200/_cat/indices?v
4.创建新的索引【索引要求是全小写字符,可以有下划线隔开】
curl -XPUT http://192.168.6.16:9200/my_new_index?pretty
再查看:
curl http://192.168.6.16:9200/_cat/indices?v
5.对新增的索引,插入一条数据
type是user, id指定为1
curl -XPUT http://192.168.6.16:9200/my_new_index/user/1?pretty -d '{"name":"张三","age":"23"}'
6.根据ID,获取刚刚索引中新增的数据
curl -XGET http://192.168.6.16:9200/my_new_index/user/1?pretty
7.修改数据
7.1先新增一条数据
curl -XPUT http://192.168.6.16:9200/my_new_index/user/2?pretty -d '{"name":"李四","age":"25"}'
7.2 根据ID查询这条数据
curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty
7.3修改id为2的数据
curl -XPUT http://192.168.6.16:9200/my_new_index/user/2?pretty -d '{"name":"李四修改","age":"28"}'
即使用相同的新增命令操作 相同的ID,数据不同
7.4查询修改结果
curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty
8.更新数据,使用POST请求,注意请求体,格式
curl -XPOST http://192.168.6.16:9200/my_new_index/user/2/_update?pretty -d '{"doc":{"name":"李四更新","age":"230"}}'
查看更新后的数据:
curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty
9.更新数据的同时,新增列
就是将doc中的json数据列增加即可
curl -XPOST http://192.168.6.16:9200/my_new_index/user/2/_update?pretty -d '{"doc":{"name":"李四更新","age":"230","address":"北京东直门"}}'
查看:
curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty
10.将age字段字符串类型,修改为数字类型,并使用简单脚本对其操作
10.1 查看数据
curl -XGET http://192.168.6.16:9200/my_new_index/user/2?pretty
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":"北京东直门"}}'
10.3 查看修改后数据
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
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
11.删除数据,根据ID删除
curl -XDELETE http://192.168.6.16:9200/my_new_index/user/2?pretty
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} '
想要看插入以后索引下的数据,查询在后面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"}} '
15.导入批量数据集文件json文件【使用bulk批量导入】
测试的json批量数据集文件,java生成代码:
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+"\"}}"+"\r\n"+"{\"name\":\"张三"+i+"\",\"age\": "+i+",\"address\":\"北京"+i+"\"}"+"\r\n");}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
查看index详情:
curl http://192.168.6.16:9200/_cat/indices?v
可以看到成功批量插入了200条
===================================下来看查询(删除索引在最后)=========================================
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":{}}}'
17.查询指定索引下的数据
【如果不指定size,默认返回10条】
curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d ' {"query":{"match_all":{}},"size":10 } '
18.分页查询,从第10条,返回10条
curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d ' {"query":{"match_all":{}},"from": 10,"size": 10 } '
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 } '
20.只返回想查询的部分字段
只返回name和address列
curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d ' {"query":{"match_all":{}},"_source":["name","address"] } '
21.条件匹配查询
21.1查询age=200的数据
curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d ' {"query":{"match":{"age":200}} } '
21.2 查询address中包含 “北京” 的数据
curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d ' {"query":{"match":{"address":"北京"}} } '
21.3 查询 address中 包含“北京” 或 “西安”的所有数据 【匹配单个词语 空格分隔】
curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d ' {"query":{"match":{"address":"北京 西安"}} } '
21.4 查询address中包含“北京 西安” 完整词语的【短语匹配,“北京 西安”作为一个完整词语查询】、
curl -XPOST http://192.168.6.16:9200/my_new_index/_search?pretty -d ' {"query":{"match_phrase":{"address":"北京 西安"}} } '
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":"西安"}}]}} } '
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":"西安"}}]}} } '
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":"西安"}}]}} } '
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":"西安"}}]}} } '
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}}} } '
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"}}} } '
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"}}} } '
按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"}}}}} } '
100.删除索引
100.1 查看所有索引信息
curl http://192.168.6.16:9200/_cat/indices?v
100.2 删除指定索引
curl -XDELETE http://192.168.6.16:9200/my_new_index?pretty
100.3 再次查看
curl http://192.168.6.16:9200/_cat/indices?v
==========================================
转载于:https://www.cnblogs.com/sxdcgaq8080/p/11118947.html
【ELK】7. elasticsearch linux上操作es命令详解相关推荐
- Linux上的free命令详解
Linux上的free命令详解 转自: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上f ...
- linux下rsync命令,linux上的rsync命令详解
rsync 简介 rsync 就是远程同步的意思remote sync. rsync 被用在UNIX / Linux执行备份操作操作. rsync 工具包被用来从一个位置到另一个位置高效地同步文件和文 ...
- linux mysql 确认命令_LINUX启动/重启/停上MYSQL的命令(详解)
如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld sta ...
- linux启动mysql命令_LINUX启动/重启/停上MYSQL的命令(详解)
如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld sta ...
- LINUX经常使用的命令详解
LINUX经常使用的命令详解 源地址:http://blog.itpub.net/29065182/viewspace-1189162/ 1.man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ...
- Ubuntu (Linux) 系统 find 命令详解
Ubuntu (Linux) 系统 find 命令详解 在Ubuntu (Linux)系统的终端上,虽然没有像 windows 上那样简介易用的图形界面 搜索工具,但只要你使用足够熟练, 有一个强大命 ...
- linux上安装Openssl步骤详解
linux上安装Openssl步骤详解 1,查看原有系统是否已安装Openssl openssl version -a 系统已经安装了openssl,我们先安装新的版本,然后将环境配置成最新的 ...
- MySQL操作mysqldump命令详解
MySQL操作mysqldump命令详解 基本命令: # 数据库备份-->mysqldump命令默认做锁表操作 mysqldump -uroot -ppassword --all-databas ...
- avast! for linux/unix servers,最常见的Linux/Unix监控工具vmstat命令详解
最常见的Linux/Unix监控工具vmstat命令详解 vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率.内存使用.虚拟内存交换 ...
最新文章
- spring boot 项目源码_Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent
- 选红叶家装不就得了,用得着这么费事吗?!
- 17.ubuntu18.04解决压缩包乱码问题
- 【集合论】容斥原理 ( 复杂示例 )
- 浏览器是如何解析html的?
- jquery获取手机验证码按钮计时插件getVerifyCode.js
- 底层框架_你有必要了解一下Flink底层RPC使用的框架和原理
- 智慧交通day03-车道线检测实现06:车道线定位及拟合+代码实现
- “蚂蚁漫步”背后的定位原理思考
- SEO之网站内链优化策略
- CocoPods原理
- 浙大PAT考试经验/考前必看/日常刷题总结(经验只写了一点点
- 两个服务器同步网站数据,两个服务器之间数据库同步
- 怎么样才算是精通 C++?
- Ubuntu 18.04 DNS解析失败
- 2021年10月程序员薪资出炉,你在哪个层级?
- java获取网络时间_java使用ntp同步获取网络时间
- 合作小红书探店博主需要注意什么?流程是怎样的?
- 大数据周会-本周学习内容总结05
- 如何理解GPO版本号
热门文章
- win10 kms激活
- Python爬虫新手进阶版:怎样读取非结构化网页、图像、视频、语音数据
- 技嘉1080显卡体质测试软件,技嘉GTX 1080 Xtreme Gaming双卡SLI性能深度评测+拆解
- 模拟买一台计算机及装机心得,装机模拟器显卡及处理器超频影响因素分析 超频体验心得_游侠网...
- 什么是TXT记录?如何设置、检测TXT记录是否生效
- 阿里短信服务 JAVA
- PUCCH(2)格式与DTX检测(源于5G上行控制信道增强技术研究)
- linux18安装anyconnect4.9遇到I/O问题
- canvas绘制象棋谱
- cib.xml for 2resource1group4score