索引文档

作者: Vekaco | 来源:发表于2020-03-19 13:59 被阅读0次
    索引单个文档

    集群启动运行之后,您就可以准备索引一些数据了。Elasticsearch有很多的选项, 但是归根结底他们做的都是一样的事情:把JSON文档放进Elasticsearch里面进行索引。

    您可以直接通过一个简单的PUT请求,来指定你想要添加索引的文档, 请求体中包含一个唯一的文档ID,一个或多个的 “域”:"值"对。

    //kibana
    //http://localhost:5601/app/kibana#/dev_tools/console?_g=()
    PUT /customer/_doc/1
    {
      "name": "John Doe"
    }
    
    //curl
    curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'
    {
      "name": "John Doe"
    }
    '
    

    如果customer索引不存在,这个请求自动的就创建,随后添加一个ID为1,并包含一个name域的文档进行存储和索引。

    因为这是一个新的文档, 所以返回的应答报文中显示这份文档的版本号是1。

    {
      "_index" : "customer",
      "_type" : "_doc",
      "_id" : "1",
      "_version" : 1,
      "result" : "created",
      "_shards" : {
        "total" : 2,
        "successful" : 2,
        "failed" : 0
      },
      "_seq_no" : 15,
      "_primary_term" : 2
    }
    

    这个新的文档可以立刻从集群中的任何一个节点访问到,您可以通过指定文档ID的GET请求来获取该文档。

    {
      "_index" : "customer",
      "_type" : "_doc",
      "_id" : "1",
      "_version" : 1,
      "_seq_no" : 14,
      "_primary_term" : 2,
      "found" : true,
      "_source" : {
        "name" : "John Doe"
      }
    }
    
    批量索引文档

    倘若你有很多文档要建索引, 您可以通过bulk API在批处理脚本里提交。通过bulk来批处理文档比单个提交请求快的多的方式, 因为这样可以尽可能的减少网络往返响应的次数。

    优化批处理大小主要有以下几个因素决定:文档的数量和复杂程度、建立索引和搜索的负载和集群可用资源。一个好的批处理其实域1000-5000个文件,总负载在5MB-15MB之间。在此,您可以通过尝试来找到最佳的平衡点。

    导如一些数据导Elasticsearch,这样你就可以开始搜索和分析:

    1. 下载accounts.json样本数据集。这些文档是随机生成的数据集代表用户账户的以下信息:
    {
        "account_number": 0,
        "balance": 16623,
        "firstname": "Bradshaw",
        "lastname": "Mckenzie",
        "age": 29,
        "gender": "F",
        "address": "244 Columbus Place",
        "employer": "Euron",
        "email": "bradshawmckenzie@euron.com",
        "city": "Hobucken",
        "state": "CO"
    }
    
    1. 通过以下_bulk请求将account数据倒入bank索引分片中:
    curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json"
    curl "localhost:9200/_cat/indices?v"
    

    通过以下命令可以看到1000个文档已经索引成功。

    curl "localhost:9200/_cat/indices?v"
    
    yellow open   bank                            rZ4BxAhyQU63hKm3x42_kA   1   1       1000            0    414.2kb        414.2kb
    

    相关文章

      网友评论

        本文标题:索引文档

        本文链接:https://www.haomeiwen.com/subject/qiqnehtx.html