如何在 Python 中使用 elasticsearch 检索 1M 文档?

How to retrieve 1M documents with elasticsearch in Python?

如何从 python 获取 elasticsearch 中的 100000 个寄存器? MatchAll 查询只检索 10000.

禁止"size"和"offset"之和超过10000

您需要使用 scan api。那边有一个非常方便的帮手 http://elasticsearch-py.readthedocs.io/en/master/helpers.html#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.

中的扫描助手

参考。 Helpers.