_id
字段限制在聚合、排序和脚本编写中使用。如果需要对 _id 字段进行排序或聚合,建议将 _id
字段的内容复制到另一个启用了 doc_values
的字段中。我想知道在启用 doc_values
的情况下创建 _id 字段副本的最佳方法是什么,主要用于现有索引。
我尝试使用 Val 建议的 _update_by_query ,它似乎有效,但如果在
_update_by_query
之后有新文档或更新,它将不包含 tie_breaker_id。我想避免在以后的每次搜索中运行 _update_by_query
。考虑了运行时字段,但我们在弹性 6.x 上有索引,它也会影响搜索性能。
在 Elasticsearch 中,search_after 通常用于有效地对搜索结果进行分页。当您需要实现仲裁以确保在主排序值相等的情况下排序一致时,您可以使用主排序字段和仲裁字段的组合。
以下是如何使用 search_after 实现决胜局的示例:
使用多字段映射: 为要排序的字段定义多字段映射。这涉及创建两个字段,一个用于主要排序,另一个用于决胜局。