ElasticSearch(二)-- 简单的增删改查

1.查看集群的健康状态

cat命令是系统信息查询相关的

curl --user elastic:changeme -XGET 'localhost:9200/_cat/health?v'

1563783908481

  • –user表示用户名和密码
  • -XGET后面为请求查询的url
  • ?v 每个命令都支持使用?v参数,来显示详细的信息 (verbose),或者说加上表头显示

无论何时查看集群健康状态,我们会得到greenyellowred中的任何一个。

  • Green - 一切运行正常(集群功能齐全)
  • Yellow - 所有数据是可以获取的,但是一些复制品还没有被分配(集群功能齐全)
  • Red - 一些数据因为一些原因获取不到(集群部分功能不可用),当一个集群处于red状态时,它会通过可用的分片继续提供搜索服务,但是当有未分配的分片时,你需要尽快的修复它

2.列出所有的索引

curl --user elastic:changeme -XGET 'localhost:9200/_cat/indices?v&pretty'

1563785483303

这里只有一个默认的索引,因为我们还没有创建自己的索引。

3.创建一个索引

curl --user elastic:changeme -H 'Content-Type:application/json;charset=UTF-8' -XPUT 'localhost:9200/goods/type1/1?pretty' -d '{"name":"Joe","hobby":"编程"}'

1563787296726

注意:增加 和 修改索引 需要加上 -H 'Content-Type:application/json;charset=UTF-8'

4.查询整个索引

curl --user elastic:changeme -XGET 'localhost:9200/goods?pretty'

1563793849920

这个索引包含5个分片,复制数1,包含一个文档类型tp1。

还可以用_search命令来查询索引里的具体文档,不带任何参数查询所有文档:

curl --user elastic:changeme -XGET 'localhost:9200/goods/_search?pretty'

1563796631442

注意:curl –user elastic:changeme -XGET localhost:9200/goods 查询的是索引goods的源数据情况;而curl –user elastic:changeme -XGET localhost:9200/goods/_query 返回的是索引里的数据。

curl --user elastic:changeme -XGET 'localhost:9200/goods/type1/1?pretty'

1563793440812

source属性返回我们在上一步中加入索引的完整JSON文档内容

5.修改索引中的id为1 的文档

curl --user elastic:changeme -H 'Content-Type:application/json;charset=UTF-8' -XPOST 'localhost:9200/goods/type1/1?pretty' -d '{"name":"xbq","hobby":"足球"}'

1563797051315

6.使用_update修改文档

curl --user elastic:changeme -H 'Content-Type:application/json;charset=UTF-8' -XPOST 'localhost:9200/goods/type1/1/_update?pretty' -d '{"doc":{"name":"beckham","age":37}}'

1563797715153

7.删除文档

curl --user elastic:changeme -XDELETE 'localhost:9200/goods/type1/1?pretty'

1563798153105

查询一下,发现hits中为空了,表示删除成功了。

curl --user elastic:changeme -XGET 'localhost:9200/goods/_search?pretty'

1563798309203

8.查询字符串

查询字段名name中包含”hello”的记录

curl --user elastic:changeme -H 'Content-Type:application/json;charset=UTF-8' -XGET 'localhost:9200/goods/_search?pretty' -d '{"query": {"match":{"name":"beckham"}}}'

1563799467607

注意:这里的match如果是针对字符串,那么会以空格为分解符,也就是说“beckham”和“beckham Joe”都是满足条件的,但是“beckhamJoe”就不满足条件了。

指定返回某些字段:只需要返回”name”和”age”字段:

curl --user elastic:changeme -H 'Content-Type:application/json;charset=UTF-8' -XGET 'localhost:9200/goods/_search?pretty' -d '{"_source":["name","age"]},{"query": {"match":{"name":"beckham"}}}'

1563799625850

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------
分享到:
0%