web-dev-qa-db-fra.com

Python elasticsearch.helpers.scan

Quelqu'un peut-il fournir un exemple d'API d'analyse de python elasticsearch helpers client?

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

Comment puis-je obtenir tous les résultats d'elasticsearch avec l'objet res?

14
Developer

documentation inclut un exemple, bien que si je le lis correctement, helpers.scan par défaut définit search_type=scan, qui était supprimé dans ES 5.1 . Cela provoque l'échec de l'exemple de code avec ES renvoyant No search type for [scan]. Nous pouvons modifier cela avec preserve_order=True (Je ne suis cependant pas sûr des implications de performances ici):

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'])

Cet assistant renvoie un objet que vous pouvez parcourir pour obtenir les résultats réels de la requête.

item est de forme

{'_index': <str>, '_type': <str>, '_id': <str>, '_score': <float or None>, '_source': {'key': val}, 'sort': [<int>]}
20
Norrius