ElasticSearch(3)---CURL操作

在这里插入图片描述

上一篇:ElasticSearch(2)—安装

1.什么是CURL?

  CURL是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有可以yum安装。

参数:

参数 描述
-X 指定Http的请求方法(HEAD、GET、POST、PUT、DELETE)
-d 指定要传输的数据(一般是json)
-H 指定http请求头信息

3.CURL使用语法?

  检查服务是否能够正常使用:curl -XGET 'http://<ip>:9200',显示如下则可以正常使用
在这里插入图片描述

1.创建索引库

curl -XPUT http://<ip>:9200/index_name/    

PUT和POST都可以创建,PUT适用于用户更新,POST更适合新增

索引库名必须全部小写,且不能以下划线开头,也不能包含逗号

案例:创建一个名为mydata的索引库

curl -XPUT 'http://127.0.0.1:9200/mydata'

在这里插入图片描述
2.创建索引

  早期的版本中,content-type是可选的。自ElasticSearch 6.0之后,所有包含主体的REST请求必须为该主体提供正确的内容类型。

curl -H'Content-Type: application/json' -XPOST 'http://<ip>:9200/索引库名/type/索引数据ID' -d {json类型的数据}

  如果没有明确指定索引数据的ID,那么es会自动生成一个随机的ID,需要使用POST参数

案例:创建一个类型为product的索引

curl -H'Content-Type: application/json' -XPOST 'http://120.76.217.14:9200/mydata/product/1' -d '{"name":"book","address":"beijing"}'

在这里插入图片描述
3.查看创建的索引

ElasticSearch(1)—基础概念中记录了ES中内置的REST接口,使用/index/_search查询创建的索引。

3.1 查询所有的索引

curl -XGET 'http://<ip>:9200/索引库名/索引类型(type)/_search?pretty'

在这里插入图片描述
3.2 查询指定ID的索引

curl -XGET 'http://120.76.217.14:9200/mydata/product/2?pretty'

在这里插入图片描述
3.3 查询指定ID的索引的某字段

curl -XGET 'http://120.76.217.14:9200/mydata/product/2?_source=name&pretty'

只显示name,没有显示address
在这里插入图片描述

3.4 查询指定条件的索引

curl -XGET 'http://120.76.217.14:9200/mydata/product/_search?q=name:"条件"&pretty'

查询name=water的索引
在这里插入图片描述
输入以下命令:

curl -XGET 'http://120.76.217.14:9200/mydata/product/_search?q=name:"water"&pretty'

在这里插入图片描述
查询address:shenzhen的索引:

curl -XGET 'http://120.76.217.14:9200/mydata/product/_search?q=address:"shenzhen"&pretty'

4.修改索引数据

一、全局更新

全局更新可以理解为将原有的索引document删除了之后,再重新创建一个document。

案例:将id为1的索引数据更新为"address":"sichaun"

curl -H 'Content-Type:application/json' -XPOST 'http://120.76.217.14:9200/mydata/product/1?pretty' -d '{"address":"sichuan"}'

在这里插入图片描述
当我们再次查询发现原来索引中的"name":"book"已经没有了,这是全局更新
在这里插入图片描述

二、局部更新

现在我需要把mydata索引库中的id为2的索引数据中的address修改为深证,其他数据不变。

curl -H 'Content-Type:application/json' -XPOST 'http://<ip>:9200/索引库名/索引类型/索引ID/_update?pretty' -d '{"doc":{"key":"value"}}'

在这里插入图片描述

[zhangsan@tomcat-tst elasticsearch-7.6.0]$ curl -H 'Content-Type:application/json' -XPOST 'http://120.76.217.14:9200/mydata/product/2/_update?pretty' -d '{"doc":{"address":"shenzhen"}}'
{
  "_index" : "mydata",
  "_type" : "product",
  "_id" : "2",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 5,
  "_primary_term" : 1
}
[zhangsan@tomcat-tst elasticsearch-7.6.0]$ 

再查询以下索引看下是否更新成功:

在这里插入图片描述
成功将原来的shanghai修改为shenzhen

5.删除索引

curl -XDELETE 'http://<ip>:9200/索引库名/索引类型/索引ID'

  如果文档存在:found:true,successful:1,_version:+1 ,如果文档不存在的时候,found:false,版本号_version:+1。这有点类似于svn的版本号,它保证了多个节点之间不同操作的顺序被正确标记了。
  一个文档被删除之后,不会立即生效,他只是被标记为已删除,ES将会在以后添加更多索引的适合才会在后台进行删除

案例:删除指定ID为1的索引

omcat-tst elasticsearch-7.6.0]$ curl -XDELETE 'http://120.76.217.14:9200/mydata/product/1?pretty'
{
  "_index" : "mydata",
  "_type" : "product",
  "_id" : "1",
  "_version" : 4,
  "result" : "not_found",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 7,
  "_primary_term" : 1
}

再查询一下:只剩下id为2的索引了。
在这里插入图片描述

下一篇:ElasticSearch(3)—Bulk批量操作
发布了101 篇原创文章 · 获赞 50 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43655835/article/details/104648861