2015-03-02 69 views

回答

2

更新:回复:fields

注意,这是1.x的文档,如果你刚到这里从未来。

为了向后兼容,如果字段参数指定在没有存储(存储映射设置为false)字段,它会加载_source并从中提取它。该功能已被source filtering参数取代。

- https://www.elastic.co/guide/en/elasticsearch/reference/1.7/search-request-fields.html#search-request-fields


AFAICT:

_source告诉elasticsearch是否包括在响应匹配的文档的。 “源”是插入文档时的数据。

fields告诉elasticsearch包括,但仅包括定义的字段

性能:除非您的Elasticsearch服务器的带宽较低,否则可能忽略不计。

+0

回到什么是_source_include之间的区别和字段参数?他们两人似乎都做了类似的事情。 – vaishaks 2015-03-02 14:04:22

+1

嗯,再看一下:“这个功能已经被源代码过滤参数取代。” - http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-get.html#get-fields – joar 2015-03-02 15:21:00

0

我有同样的疑问,here我找到了什么可以解答。

领域限制,其内容是解析并返回

_source_filtering限制它们返回

看到的另一种方式是认为领域是字段的字段用于优化数据传输和CPU使用率,而_source_filtering只优化数据传输

源过滤使我们能够控制的为每个命中返回原来的JSON文件的部分[...]这是值得记住,这不仅节省了我们参与搜索的节点之间的带宽成本以及客户端,而不是CPU或磁盘,就像使用字段时一样。

另外:

一个关于这不是俗称领域的特点是选择的元数据字段以及能力。特别值得注意的是它能够选择_ttl字段,它实际上会返回毫秒数,直到文档过期,而不是文档的原始寿命。确实是一个非常方便的功能。

0

fields参数仅适用于stored字段。从2.3文档:

除了索引字段的值,您还可以选择存储 原始字段值供以后检索。具有Lucene 后台的用户使用存储的字段来选择他们希望 能够在其搜索结果中返回的字段。事实上,_source字段 是一个存储字段。在Elasticsearch中,设置要存储的个别文档 通常是错误的优化。整个 文档已经存储为_source字段。使用_source 参数提取所需的字段几乎总是 更好。

source filetring对于如何限制领域从_source

相关问题