_doc在elasticsearch中表示什么?

时间:2016-03-02 12:56:11

标签: elasticsearch

我仍在试图找出_doc在elasticsearch中的含义? 从文档中我可以找到它的两个地方:

  1. 在排序时,建议_doc更好,因为_doc排序的好处是,弹性搜索在移动到下一页时可以有效地跳到下一个匹配的文档(它将简单地忽略所有的文档比上一个返回的文档更小的文档ID。 Source

  2. this git请求中提到了对_doc的另一个引用,该请求将字段名称与_doc对话。

  3. 有人可以确切地告诉_doc究竟是什么吗?

3 个答案:

答案 0 :(得分:16)

_docmapping type,现在是deprecated

mapping type曾经是同一索引内的单独集合。例如。 twitter索引可以具有用于存储所有用户的user类型的映射和用于存储所有推文的tweet类型的映射。这两种类型仍然属于同一索引,因此您可以在同一索引中搜索多种类型。

由于elaticsearch出于新闻原因而淘汰了映射类型,出于多种原因,他们迫使v6用户每个索引仅使用1种映射类型,也就是说,您可以在{{内使用usertweet 1}}索引,但不能同时使用两者。 他们进一步建议保持一致,并使用twitter作为映射类型的名称。但这实际上可以是任何字符串-狗,猫等。建议仅使用_doc,因为在v7中,映射类型字段完全消失了。因此,如果elasticsearch中的每个索引都只有一种映射类型,那么迁移到v7会更容易,因为您只需删除映射类型,然后所有文档都将直接位于索引下。

答案 1 :(得分:2)

我认为这两个用例并未使用_doc术语用于同一目的:

  1. 用于排序的关键字_doc是Elasticsearch 2中的新增功能,它是旧扫描和滚动方式的替代,可以有效地深入分析查询结果。文档中没有实际的_doc字段。

  2. 在搜索(或获取,更新等)请求的_doc部分中使用的_source语法尚未实现,如git讨论开头所示,但改为使用fielddata_fields字段。它与排序中_doc的使用无关。

  3. 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