Elasticsearch如何查询ID字段高于x

时间:2016-10-19 12:14:50

标签: python elasticsearch range elasticsearch-dsl elasticsearch-py

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

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

这样我想得到1001到2000的结果。在2001年之后直到3000年,等等。

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

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

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

1 个答案:

答案 0 :(得分:1)

实现您想要的最佳方法是使用scroll / can API。但是,如果你仍然希望以这种方式进行,你可以这样做:

last_id = ...
search.filter('range', id={'gt': last_id + 1, 'lt': last_id + 1000})