实现 search_after 决胜局的最佳方法

问题描述 投票:0回答:1

_id
字段限制在聚合、排序和脚本编写中使用。如果需要对 _id 字段进行排序或聚合,建议将
_id
字段的内容复制到另一个启用了
doc_values
的字段中。我想知道在启用
doc_values
的情况下创建 _id 字段副本的最佳方法是什么,主要用于现有索引。

我尝试使用 Val 建议的 _update_by_query ,它似乎有效,但如果在

_update_by_query
之后有新文档或更新,它将不包含 tie_breaker_id。我想避免在以后的每次搜索中运行
_update_by_query
。考虑了运行时字段,但我们在弹性 6.x 上有索引,它也会影响搜索性能。

sorting elasticsearch
1个回答
0
投票

在 Elasticsearch 中,search_after 通常用于有效地对搜索结果进行分页。当您需要实现仲裁以确保在主排序值相等的情况下排序一致时,您可以使用主排序字段和仲裁字段的组合。

以下是如何使用 search_after 实现决胜局的示例:

使用多字段映射: 为要排序的字段定义多字段映射。这涉及创建两个字段,一个用于主要排序,另一个用于决胜局。

© www.soinside.com 2019 - 2024. All rights reserved.