文档章节

ES权威指南[官方文档学习笔记]-39 retrieving multiple documents

强子大叔的码田
 强子大叔的码田
发布于 2014/05/13 19:42
字数 456
阅读 119
收藏 0

es:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_retrieving_multiple_documents.html

下一篇:http://my.oschina.net/qiangzigege/blog/264382

内容:

 

es,没有最快,只有更快,
绑定多个请求在一个请求里,可以避免处理每个请求带来的网络负载问题。
(这个技术算不上NB吧,基本都支持了。)
如果你知道你需要检索多个文档,一次请求的速度很快,而不是一个接着一个文档获取。

mget API 期望一组docs,每个元素包含_index,_type,_id元数据
你也可以指定_source参数来过滤字段。

GET /_mget
{
   "docs" : [
      {
         "_index" : "website",
         "_type" :  "blog",
         "_id" :    2
      },
      {
         "_index" : "website",
         "_type" :  "pageviews",
         "_id" :    1,
         "_source": "views"
      }
   ]
}

响应体也包含一组docs.按照请求对应的顺序返回。
每个响应

{
   "docs" : [
      {
         "_index" :   "website",
         "_id" :      "2",
         "_type" :    "blog",
         "found" :    true,
         "_source" : {
            "text" :  "This is a piece of cake...",
            "title" : "My first external blog entry"
         },
         "_version" : 10
      },
      {
         "_index" :   "website",
         "_id" :      "1",
         "_type" :    "pageviews",
         "found" :    true,
         "_version" : 2,
         "_source" : {
            "views" : 2
         }
      }
   ]
}

如果你检索的文档都在同一个index里(甚至同一个type),
你可以指定/_index或者/_index/_type在url里。

你也可以覆盖这些值。

GET /website/blog/_mget
{
   "docs" : [
      { "_id" : 2 },
      { "_type" : "pageviews", "_id" :   1 }
   ]
}

事实上,如果所有的文档有同样的_index,_type,

你可以这样来查询:
GET /website/blog/_mget
{
   "ids" : [ "2", "1" ]
}

注意:第二个文档不存在,
如果不存在

{
  "docs" : [
    {
      "_index" :   "website",
      "_type" :    "blog",
      "_id" :      "2",
      "_version" : 10,
      "found" :    true,
      "_source" : {
        "title":   "My first external blog entry",
        "text":    "This is a piece of cake..."
      }
    },
    {
      "_index" :   "website",
      "_type" :    "blog",
      "_id" :      "1",
      "found" :    false  
    }
  ]
}

文档没有找到。
第二个文档没找到,不影响第一个,每个文档独立执行。

HTTP响应体的代码是200,尽管有一个文档没找到,
事实上,就算都没找到,也还是200,
原因是mget本身已经成功执行了,
用户需要关注found字段的值。


© 著作权归作者所有

强子大叔的码田

强子大叔的码田

粉丝 910
博文 1439
码字总数 1221048
作品 9
南京
架构师
私信 提问
ES权威指南(中文版)学习_1

1、在ES中存储数据的行为叫做 索引(indexing),不过在索引之前我们应该明确的是数据应该存储在哪里。 2、在ES中,文档归属于一种类型(type),而这些类型存在于索引(index)中,类比传统...

MrYx3en
2015/09/21
150
0
es不简易指南

1.nested Object mapping及查询 进阶:Elasticsearch之Nested(嵌套)系列、es权威指南-嵌套-查询、es权威指南-嵌套-对象(官方文档中文详细解释) 2.父子文档 进阶:Elasticsearch索引的父子关...

刘阳0292
2017/08/30
0
0
Mac下安装Elasticsearch极简指南

Elasticsearch(以下简称ES)是一个面向文档的实时分布式搜索和分析引擎。本文是在Mac系统下使用Homebrew安装ES+Kibana+Marvel的一份极简指南。 前置条件 想要安装ES的前提是已经在本机安装了J...

郗南枫
2017/11/08
0
0
开源电子书

目录 语言无关类 操作系统 智能系统 分布式系统 编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 ...

zting科技
2017/12/11
0
0
Fanta/free-programming-books-zh_CN

免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿。 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版...

Fanta
2016/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解表单脚本系列第二篇——表单字段

本文转载于:专业的前端网站➜深入理解表单脚本系列第二篇——表单字段 前面的话   表单字段又叫表单元素,表示表单所包含控件,如<input>、<select>等。本文将详细介绍表单字段的内容 访问...

前端老手
19分钟前
5
0
前端技术之:常用webpack插件

1、html-webpack-plugin Simplifies creation of HTML files to serve your webpack bundles. 主页地址: https://github.com/jantimon/html-webpack-plugin 安装方法: npm i --save-dev h......

popgis
25分钟前
6
0
IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1

HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持,仍然可以显示为...

老码农的一亩三分地
26分钟前
5
0
规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
今天
7
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
803
11

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部