目前,我正在使用以下程序从elasticsearch中提取ID及其严重性信息。
from elasticsearch import Elasticsearch from elasticsearch_dsl import Search, Q client = Elasticsearch( [ #'http://user:[email protected]:9200/', 'http://10.x.x.11:9200/', ], verify_certs=True ) s = Search(using=client, index="test") response = s.execute() for hit in response: print hit.message_id, hit.severity, "\n\n"
我相信默认情况下查询返回10行。我在elasticsearch中有超过10000行。我需要获取所有信息。
有人可以指导我如何运行同一查询以获取所有记录吗?
您可以使用scan()helper函数来从test索引中检索所有文档:
scan()
test
from elasticsearch import Elasticsearch, helpers client = Elasticsearch( [ #'http://user:[email protected]:9200/', 'http://10.x.x.11:9200/', ], verify_certs=True ) docs = list(helpers.scan(client, index="test", query={"query": {"match_all": {}}})) for hit in docs: print hit.message_id, hit.severity, "\n\n"