誰かがpython elasticsearchヘルパークライアントのスキャンAPIの例を提供できますか?
res = elasticsearch.helpers.scan(....)
Resオブジェクトを使用してelasticsearchからすべての結果を取得するにはどうすればよいですか?
ドキュメント には例が含まれていますが、正しく読んでいる場合、helpers.scan
はデフォルトでsearch_type=scan
を設定します。これは 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>]}