我仍在试图找出_doc在elasticsearch中的含义? 从文档中我可以找到它的两个地方:
答案 0 :(得分:16)
_doc
是mapping type,现在是deprecated。
mapping type
曾经是同一索引内的单独集合。例如。 twitter
索引可以具有用于存储所有用户的user
类型的映射和用于存储所有推文的tweet
类型的映射。这两种类型仍然属于同一索引,因此您可以在同一索引中搜索多种类型。
由于elaticsearch出于新闻原因而淘汰了映射类型,出于多种原因,他们迫使v6用户每个索引仅使用1种映射类型,也就是说,您可以在{{内使用user
或tweet
1}}索引,但不能同时使用两者。 他们进一步建议保持一致,并使用twitter
作为映射类型的名称。但这实际上可以是任何字符串-狗,猫等。建议仅使用_doc
,因为在v7中,映射类型字段完全消失了。因此,如果elasticsearch中的每个索引都只有一种映射类型,那么迁移到v7会更容易,因为您只需删除映射类型,然后所有文档都将直接位于索引下。
答案 1 :(得分:2)
我认为这两个用例并未使用_doc
术语用于同一目的:
用于排序的关键字_doc
是Elasticsearch 2中的新增功能,它是旧扫描和滚动方式的替代,可以有效地深入分析查询结果。文档中没有实际的_doc
字段。
在搜索(或获取,更新等)请求的_doc
部分中使用的_source
语法尚未实现,如git讨论开头所示,但改为使用fielddata_fields
字段。它与排序中_doc
的使用无关。
在scripting documentation中,您会找到关于document field data的部分,因为它存储在内存中并且可以使用类似的doc
语法进行访问,因此读取速度非常快(这可能会增加混乱。)
答案 2 :(得分:1)
从ElasticSearch 8.x版本开始,仅支持_doc,它只是端点名称,而不是文档类型。
在7.0中,_doc代表端点名称而不是文档 类型。 _doc组件是路径的永久部分 文档索引,获取和删除API,并且不会 在8.0中已删除。
Elasticsearch 8.x不再支持在请求中指定类型。 include_type_name参数已删除。
https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html