使用 elasticsearch_dsl 获取所有行
Fetch all the rows using elasticsearch_dsl
目前我正在使用以下程序从弹性搜索中提取 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"
我相信默认情况下查询 returns 10 行。我在弹性搜索中有超过 10000 行。我需要获取所有信息。
有人可以指导我如何 运行 相同的查询来获取所有记录吗?
您可以使用 scan()
helper function 从您的 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"
目前我正在使用以下程序从弹性搜索中提取 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"
我相信默认情况下查询 returns 10 行。我在弹性搜索中有超过 10000 行。我需要获取所有信息。
有人可以指导我如何 运行 相同的查询来获取所有记录吗?
您可以使用 scan()
helper function 从您的 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"