有人可以提供python elasticsearch助手客户端的扫描API示例吗?
res = elasticsearch.helpers.scan(....)
如何从res对象获得elasticsearch的所有结果?
documentation包括一个例子,虽然如果我正确读它,helpers.scan
默认设置search_type=scan
,这是removed in ES 5.1。这导致示例代码失败,ES返回No search type for [scan]
。我们可以使用preserve_order=True
对此进行修改(但我不确定这里的性能含义):
import elasticsearch
import elasticsearch.helpers
es = elasticsearch.Elasticsearch()
results = elasticsearch.helpers.scan(es,
index="test_index",
doc_type="my_document",
preserve_order=True,
query={"query": {"match_all": {}}},
)
for item in results:
print(item['_id'], item['_source']['name'])
此帮助程序返回一个对象,您可以迭代该对象以从查询中获取实际结果。
item
是形式
{'_index': <str>, '_type': <str>, '_id': <str>, '_score': <float or None>, '_source': {'key': val}, 'sort': [<int>]}