如何从 python 中获取 elasticsearch 中的 100000 个寄存器?MatchAll 查询仅检索 10000 个。
问问题
4822 次
2 回答
7
就像有人指出的那样,我会使用 Scan API 来做到这一点。
import elasticsearch
from elasticsearch import Elasticsearch
ES_HOST = {
"host": "localhost",
"port": 9200
}
ES_INDEX = "index_name"
ES_TYPE = "type_name"
es = Elasticsearch(hosts=[ES_HOST], )
results_gen = elasticsearch.helpers.scan(
es,
query={"query": {"match_all": {}}},
index=ES_INDEX,
doc_type=ES_TYPE
)
results = list(results_gen)
您还应该阅读 elasticsearch python DSL http://elasticsearch-py.readthedocs.io/en/master/helpers.html#scan中的扫描助手。
参考。帮手。
于 2017-01-31T15:33:52.290 回答
1
禁止“size”和“offset”之和超过10000。
您需要使用scan
api。那里有一个简洁方便的助手http://elasticsearch-py.readthedocs.io/en/master/helpers.html#scan
于 2017-01-31T15:28:02.823 回答