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

Joa*_*iay 1 python elasticsearch elasticsearch-5

如何从 python 中获得 100000 个寄存器在 elasticsearch 中?MatchAll 查询仅检索 10000。

eli*_*sah 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)
Run Code Online (Sandbox Code Playgroud)

您还应该阅读有关 elasticsearch python DSL http://elasticsearch-py.readthedocs.io/en/master/helpers.html#scan 中的扫描助手的信息 。

参考 帮手