博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch 参考指南(Multi Get API)
阅读量:6803 次
发布时间:2019-06-26

本文共 2616 字,大约阅读时间需要 8 分钟。

Multi Get API

Multi Get API允许基于索引、类型(可选)和id(可能还有路由)获得多个文档,响应包括一个docs数组,其中包含所有获取的文档,以便与原始的multi-get请求相对应(如果特定get失败,则在响应中包括包含此错误的对象),成功get的结构在结构上类似于get API提供的文档。

这里有一个例子:

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

mget端点还可以用于索引(在这种情况下,body中不需要索引):

GET /test/_mget{    "docs" : [        {            "_type" : "_doc",            "_id" : "1"        },        {            "_type" : "_doc",            "_id" : "2"        }    ]}

和类型:

GET /test/_doc/_mget{    "docs" : [        {            "_id" : "1"        },        {            "_id" : "2"        }    ]}

在这种情况下,可以直接使用ids元素来简化请求:

GET /test/_doc/_mget{    "ids" : ["1", "2"]}

源过滤

默认情况下,每个文档将返回_source字段(如果存储了的话),与get API类似,通过使用_source参数,你可以只检索_source的一部分(或者完全没有),你还可以使用url参数_source_source_include_source_exclude来指定默认值,当没有针对每个文档指令时将使用默认值。

例如:

GET /_mget{    "docs" : [        {            "_index" : "test",            "_type" : "_doc",            "_id" : "1",            "_source" : false        },        {            "_index" : "test",            "_type" : "_doc",            "_id" : "2",            "_source" : ["field3", "field4"]        },        {            "_index" : "test",            "_type" : "_doc",            "_id" : "3",            "_source" : {                "include": ["user"],                "exclude": ["user.location"]            }        }    ]}

字段

可以指定特定的存储字段,以便对每个要获取的文档进行检索,类似于get API的stored_fields参数,例如:

GET /_mget{    "docs" : [        {            "_index" : "test",            "_type" : "_doc",            "_id" : "1",            "stored_fields" : ["field1", "field2"]        },        {            "_index" : "test",            "_type" : "_doc",            "_id" : "2",            "stored_fields" : ["field3", "field4"]        }    ]}

或者,你可以将查询字符串中的stored_fields参数指定为应用于所有文档的默认参数。

GET /test/_doc/_mget?stored_fields=field1,field2{    "docs" : [        {            "_id" : "1"         },        {            "_id" : "2",            "stored_fields" : ["field3", "field4"]         }    ]}
  • "_id" : "1" => 返回field1field2
  • "stored_fields" : ["field3", "field4"] => 返回field3field4

路由

还可以将路由值指定为参数:

GET /_mget?routing=key1{    "docs" : [        {            "_index" : "test",            "_type" : "_doc",            "_id" : "1",            "routing" : "key2"        },        {            "_index" : "test",            "_type" : "_doc",            "_id" : "2"        }    ]}

在本例中,文档test/_doc/2将从与路由键key1对应的碎片中获取,但是,文档test/_doc/1将从与路由键key2对应的碎片中获取。

转载地址:http://synwl.baihongyu.com/

你可能感兴趣的文章
数据科学与DevOps之间的差距还有救吗?
查看>>
信息化一周回顾:金融业大数据十大趋势
查看>>
Http、TCP/IP协议与Socket之间的区别
查看>>
文思海辉:智慧数据避免企业成为大数据时代落伍者
查看>>
迅雷发布“星域CDN” 做条颠覆市场的鲶鱼
查看>>
英国《数字经济法案》
查看>>
Asp.net与Flex交互测试记录
查看>>
运维前线:一线运维专家的运维方法、技巧与实践1.8 运维自动化依赖的团队模型...
查看>>
《树莓派渗透测试实战》——第1章 树莓派和Kali Linux基础知识
查看>>
《圣殿祭司的ASP.NET4.0专家技术手册》----1-7 HTML5与CSS3的支持
查看>>
数据结构之链表
查看>>
八年了必须放手了,我不是你妈妈
查看>>
Eric S. Raymond 五部曲
查看>>
《Ansible权威指南 》一2.7 本章小结
查看>>
《iOS编程指南》——2.4节安装iOS SDK
查看>>
Comparing Mongo DB and Couch DB
查看>>
《配置管理最佳实践》——1.6 工具的选择
查看>>
前端工程师如何快速的开发一个微信JSSDK应用
查看>>
Apache Spark源码走读(九)如何进行代码跟读&使用Intellij idea调试Spark源码
查看>>
Android应用安全开发之浅谈网页打开APP
查看>>