对于查询中的给定日期范围并使用 search_after 参数,我能够成功提取相关结果。我如何确定我是否处于给定日期范围的搜索结果的末尾,并且我不必继续使用 search_after 参数进行查询。
有一个非常酷的“技巧”,它不涉及任何额外的查询或结果总数的知识:
假设您的页面大小为 20。不要向 elasticsearch 请求 20 个结果,而是向其请求 21 个结果。
如果您返回 21 个结果,则仅使用其中的前 20 个。但您现在知道下一个查询将至少再有一个结果(如果您使用sort第 20 个结果的值作为search_after参数,而不是第 21 个结果!)。
如果您获得 20 个或更少的结果,则不会有其他结果。
这个 github 问题提供了更多详细信息,说明为什么 Elasticsearch 没有开箱即用的此功能: https: //github.com/elastic/elasticsearch/issues/22364
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |