• 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批量操作
  • 相关阅读:
    node-sass 安装失败
    js中复制功能总结
    设置NODE_ENV=test环境变量
    js eslint语法规范错误提示代码
    npm安装node包时怎么显示安装进度
    前端面试题总结三
    5种方式将数字转成千分位
    前端面试题总结二(js原型继承)
    前端面试题总结一(js变量和函数声明提前相关)
    1109 Group Photo (25分)
  • 原文地址:https://www.cnblogs.com/wgty/p/12810412.html
Copyright © 2020-2023  润新知