3

我正在尝试通过多次查询来将分页应用于结果以超过 Elasticsearch 的 10k 障碍。由于 Elasticsearch 的结果在多个查询期间可能不同,我想使用生成的 ID 来获取下一个结果。

例如,我运行一个返回 1000 个结果的查询。然后我想获取第 1000 个结果的 ID 值,并执行如下查询: match : ID {{1000thID}}

这样我想得到 1001 到 2000 的结果。从 2001 年到 3000 年,以此类推。

我目前使用 Elasticsearch DSL for python 来查询域名,例如:

search.query('match', domainname=domainname)

如何重建此代码以匹配上述要求。('匹配',_ID > ID_Variable)

4

1 回答 1

1

实现您想要的最佳方式是使用 scroll/can API。但是,如果您仍然想继续那样做,您可以这样做:

last_id = ...
search.filter('range', id={'gt': last_id + 1, 'lt': last_id + 1000})
于 2016-10-19T12:22:13.287 回答