我试图通过多次查询来超越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)
答案 0 :(得分:1)
实现您想要的最佳方法是使用scroll / can API。但是,如果你仍然希望以这种方式进行,你可以这样做:
last_id = ...
search.filter('range', id={'gt': last_id + 1, 'lt': last_id + 1000})