Elasticsearch search_after,tie_breaker_field 不使用_id?

时间:2021-07-26 16:57:03

标签: elasticsearch pagination

在关于 search_after API 的 Elasticsearch 文档中,他们说使用具有唯一值的字段,但他们“不建议使用 _id 字段”。谁能解释一下这背后的原因?

编辑:意在包含链接,here it is

1 个答案:

答案 0 :(得分:1)

您需要进一步阅读that paragraph

<块引用>

_id 字段对每个文档都有唯一的值,但不建议直接将其用作决胜局。 [...] doc 值在此字段上被禁用,因此对其进行排序需要在内存中加载大量数据。相反,建议复制(客户端或使用设置的摄取处理器)另一个启用了文档值的字段中 _id 字段的内容,并使用这个新字段作为排序的决胜局。

所以原因很简单,使用 _id 作为决胜局会导致大量数据可能被加载到内存中,这从来都不是一件好事。