Python elasticsearch.helpers.scan示例

问题描述 投票:14回答:1

有人可以提供python elasticsearch助手客户端的扫描API示例吗?

res = elasticsearch.helpers.scan(....)

如何从res对象获得elasticsearch的所有结果?

python python-2.7 elasticsearch elasticsearch-5
1个回答
20
投票

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>]}
© www.soinside.com 2019 - 2024. All rights reserved.