zoukankan      html  css  js  c++  java
  • Elasticsearch学习系列之多文档操作mget

    测试数据

    GET /library/books/1

    {
       "_index": "library",
       "_type": "books",
       "_id": "1",
       "_version": 1,
       "found": true,
       "_source": {
          "title": "Elasticsearch:the definitive guide",
          "name": {
             "first": "zachary",
             "last": "tong"
          },
          "publish_date": "2017-02-19",
          "price": "49.99"
       }
    }

    GET /library/books/2

    {
       "_index": "library",
       "_type": "books",
       "_id": "2",
       "_version": 1,
       "found": true,
       "_source": {
          "title": "Elasticsearch:the definitive guide",
          "name": {
             "first": "zachary",
             "last": "tong"
          },
          "publish_date": "2017-02-19",
          "price": "59.99"
       }
    }

    multi get

    多字段查询可以设置多个文档查询条件,每个查询条件在结构上都比较类似

    GET /_mget
    {
      
        "docs": [
          {
          "_index" : "library",
          "_type"  :  "books",
          "_id"    :  "1"
        },
        {
          "_index" : "library",
          "_type"  : "books",
          "_id"    : "2"
        }
        ]
      
      
    }

    当然,在查询条件中,body中_index字段也可以放在查询字符串中

    GET /library/_mget
    {
      
        "docs": [
          {
          
          "_type"  :  "books",
          "_id"    :  "1"
        },
        {
          
          "_type"  : "books",
          "_id"    : "2"
        }
        ]
      
      
    }

    对于type也是一样:

    GET /library/books/_mget
    {
      
        "docs": [
          {
          "_id"    :  "1"
        },
        {
          "_id"    : "2"
        }
        ]
    }

    如果索引和类型都放在查询URL中,那么字段ID就可以放在一个数组中:

    GET /library/books/_mget
    {
      "ids" : ["1","2"]
    }

    如果想要查询不通类型的相同ID,就需要指定类型名称

    GET /test/_mget/
    {
      "docs" : [
            {
                "_type":"typeA",
                "_id" : "1"
            },
            {
                "_type":"typeB",
                "_id" : "1"
            }
        ]
    }
    #这个例子不适用上面的测试数据

    Fields过滤

    fields过滤是获取指定的字段

    代码

    GET /_mget 
    {
      "docs" : [
          {
            "_index":"library",
            "_type" : "books",
            "_id"   : "1",
            "fields" : ["publish_date","price"]
          },
          {
            "_index":"library",
            "_type" : "books",
            "_id"   : "2",
            "fields" : ["publish_date","price"]
          }
        ]
      
    }

    结果

    {
       "docs": [
          {
             "_index": "library",
             "_type": "books",
             "_id": "1",
             "_version": 1,
             "found": true,
             "fields": {
                "publish_date": [
                   "2017-02-19"
                ],
                "price": [
                   "49.99"
                ]
             }
          },
          {
             "_index": "library",
             "_type": "books",
             "_id": "2",
             "_version": 1,
             "found": true,
             "fields": {
                "publish_date": [
                   "2017-02-19"
                ],
                "price": [
                   "59.99"
                ]
             }
          }
       ]
    }
  • 相关阅读:
    jquery水印插件:placeholder
    EF POWER TOOLS由数据库逆向CODE FIRST
    .NET重构(类型码的设计、重构方法)
    CodeUI Test:创建第一个CodeUI Test
    Windows 8 Store Apps
    ASP.NET MVC 使用MSBuild部署的几个注意事项
    c#中如何跨线程调用windows窗体控件
    Restful?
    Javascript的一种代码结构方式——插件式
    AOP编程
  • 原文地址:https://www.cnblogs.com/chadiandianwenrou/p/6424800.html
Copyright © 2011-2022 走看看