使用elasticsearch_dsl获取所有行

目前,我正在使用以下程序从elasticsearch中提取ID及其严重性信息。

from elasticsearch import Elasticsearch

from elasticsearch_dsl import Search, Q

client = Elasticsearch(

[

#'http://user:secret@10.x.x.11: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索引中检索所有文档:

from elasticsearch import Elasticsearch, helpers

client = Elasticsearch(

[

#'http://user:secret@10.x.x.11: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"

以上是 使用elasticsearch_dsl获取所有行 的全部内容, 来源链接: utcz.com/qa/419147.html

回到顶部