我在(即使用_source_include参数)和弹性搜索中GET API的fields选项之间感到困惑。在性能方面他们有什么不同?他们什么时候应该使用?elasticsearch get API中的源过滤和字段选项有什么区别?
回答
更新:回复:fields
注意,这是1.x的文档,如果你刚到这里从未来。
为了向后兼容,如果字段参数指定在没有存储(存储映射设置为false)字段,它会加载_source并从中提取它。该功能已被source filtering参数取代。
AFAICT:
_source
告诉elasticsearch是否包括在响应匹配的文档的源。 “源”是插入文档时的数据。
fields
告诉elasticsearch包括源,但仅包括定义的字段。
性能:除非您的Elasticsearch服务器的带宽较低,否则可能忽略不计。
我有同样的疑问,here我找到了什么可以解答。
领域限制,其内容是解析并返回
_source_filtering限制它们返回
看到的另一种方式是认为领域是字段的字段用于优化数据传输和CPU使用率,而_source_filtering只优化数据传输
源过滤使我们能够控制的为每个命中返回原来的JSON文件的部分[...]这是值得记住,这不仅节省了我们参与搜索的节点之间的带宽成本以及客户端,而不是CPU或磁盘,就像使用字段时一样。
另外:
一个关于这不是俗称领域的特点是选择的元数据字段以及能力。特别值得注意的是它能够选择_ttl字段,它实际上会返回毫秒数,直到文档过期,而不是文档的原始寿命。确实是一个非常方便的功能。
fields
参数仅适用于stored
字段。从2.3文档:
除了索引字段的值,您还可以选择存储 原始字段值供以后检索。具有Lucene 后台的用户使用存储的字段来选择他们希望 能够在其搜索结果中返回的字段。事实上,_source字段 是一个存储字段。在Elasticsearch中,设置要存储的个别文档 通常是错误的优化。整个 文档已经存储为_source字段。使用_source 参数提取所需的字段几乎总是 更好。
见source filetring对于如何限制领域从_source
- 1. jquery中get()和eq()有什么区别?
- 2. IPAddress.Any和IPAddress.IPv6Any字段有什么区别?
- 3. AWS Elasticsearch和AWS CloudSearch有什么区别?
- 4. ElasticSearch API通过9300 vs 9200端口有什么区别?
- 5. GET和POST方法有什么区别?
- 6. $ get和$ find函数有什么区别?
- 7. easy_install和apt-get有什么区别
- 8. ADO.NET源和OLEDB源有什么区别?
- 9. Win32 API和COM API有什么区别?
- 10. SOLR中的过滤器和复杂查询有什么区别?
- 11. mongoengine中的物体和过滤器有什么区别?
- 12. 在Elasticsearch可选字段上过滤
- 13. Elasticsearch:“范围过滤器”和“数字范围过滤器”之间的区别
- 14. Redis和StrictRedis的API有什么区别?
- 15. 过滤选项字段
- 16. elasticsearch插件和elasticsearch模块有什么区别?
- 17. 在Laravel中使用过滤器的方法 - 有什么区别
- 18. 协作过滤与协作质量过滤有什么区别?
- 19. -m32,-m64和gcc的选项中没有什么区别?
- 20. Elasticsearch GeoShape查询中的CONTAINS和WITHIN有什么区别?
- 21. showFeedDialog和publishUserAction Facebook API有什么区别?
- 22. luceneappengine和search api有什么区别?
- 23. REST和API有什么区别?
- 24. 淘宝的开源项目有什么区别:Metamorphosis和Timetunnel?
- 25. 函数int get()和istream&get(char&c)有什么区别
- 26. elasticsearch中Query DSL中must和filter之间有什么区别?
- 27. 有什么区别`和$(Bash中有什么区别?
- 28. 纹理过滤和纹理采样有什么区别?
- 29. ServiceFilter和TypeFilter - 注入这些过滤器有什么区别?
- 30. Kotlin中的get和[]调用有什么区别?
回到什么是_source_include之间的区别和字段参数?他们两人似乎都做了类似的事情。 – vaishaks 2015-03-02 14:04:22
嗯,再看一下:“这个功能已经被源代码过滤参数取代。” - http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-get.html#get-fields – joar 2015-03-02 15:21:00