zoukankan      html  css  js  c++  java
  • 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批量操作
  • 相关阅读:
    KnockoutJS 3.X API 第五章 高级应用(4) 自定义处理逻辑
    KnockoutJS 3.X API 第五章 高级应用(3) 虚拟元素绑定
    KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定
    KnockoutJS 3.X API 第五章 高级应用(1) 创建自定义绑定
    KnockoutJS 3.X API 第四章(14) 绑定语法细节
    KnockoutJS 3.X API 第四章(13) template绑定
    KnockoutJS 3.X API 第四章 表单绑定(12) selectedOptions、uniqueName绑定
    KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
    KnockoutJS 3.X API 第四章 表单绑定(10) textInput、hasFocus、checked绑定
    KnockoutJS 3.X API 第四章 表单绑定(9) value绑定
  • 原文地址:https://www.cnblogs.com/wgty/p/12810412.html
Copyright © 2011-2022 走看看