Replication es.search (index_results.execute()) for es.scrol



我正在使用python dsl库

当我使用execute((进行标准搜索时,这是一个将返回响应对象(https://elasticsearch-dsl.readthedocs.io/en/latest/search_dsl.html(的方法。 看起来有 .search 在它的核心

在某些情况下,我使用滚动. 这有效,但它返回一个字典。

我想做的是使用滚动,但以与 execute(( 相同的方式返回响应

DSL Elasticsearch 函数可以做到这一点。

def execute(self, ignore_cache=False):
"""
Execute the search and return an instance of ``Response`` wrapping all
the data.
:arg response_class: optional subclass of ``Response`` to use instead.
"""
if ignore_cache or not hasattr(self, '_response'):
es = connections.get_connection(self._using)
self._response = self._response_class(
self,
es.search(
index=self._index,
doc_type=self._doc_type,
body=self.to_dict(),
**self._params
)
)
return self._response

我需要做的(我认为(是复制它,但用于滚动,以便返回的所有数据都是相同的类型。

任何帮助将不胜感激

谢谢

我相信您正在寻找的是Search对象上的scan方法,该方法使用引擎盖下的扫描/滚动API返回文档的迭代器 - https://elasticsearch-dsl.readthedocs.io/en/latest/search_dsl.html#pagination

希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新