【发布时间】:2019-11-05 17:50:17
【问题描述】:
我正在尝试使用 python 中的 elasticsearch 获取和处理弹性中的所有条目。大约有。 60M 记录,我遇到的问题是,当我将大小增加到 1M 以上时,它开始什么都不返回。
from elasticsearch import Elasticsearch
es = Elasticsearch("1.1.1.1:1234")
res = es.search(body={
"from": 0,
"size": 10000,
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "_exists_:my_string",
"fields": []
}
}
],
"filter": [
{
"bool": {
"must": [
{
"range": {
"timestamp": {
"from": "2019-11-01 01:45:00.000",
"to": "2019-11-05 07:45:00.300",
}
}
}
]
}
}
]
}
}
})
print("%d documents found" % res['hits']['total'])
我想将结果(基本上是 JSON)转换为 pandas 数据框。这很好用,但我正在努力如何一次获取所有记录或在迭代中执行此操作。
【问题讨论】:
-
elastic.co/guide/en/elasticsearch/reference/current/… 最大大小为 10000。您必须使用分页并在其上循环才能检索所有记录。
标签: python elasticsearch