Есть ли способ вставить более 2 000 строк одновременно с API-интерфейсом эластичного поиска Python? - PullRequest
1 голос
/ 15 октября 2019

В настоящее время я работаю с набором данных на основе времени.

Благодаря API Pythonasticsearch я получаю композитный результат агрегации в цикле while.

Я пытаюсь проиндексироватьрезультат в новый индекс, но массовый не хочет индексировать более 2000 строк на массовое использование

Я уже пытался получить каждую строку моего результата, индексировать промежуточный объем, но отмечая, что работает.

def index_metric(query: str, es=es, from_index=ES_INDEX):

    res = es.search(index=ES_INDEX, body=query, size=0)
    buckets = res["aggregations"]["my_bucket"]["buckets"]

    after_key = res["aggregations"]["my_bucket"]["after_key"]

    while "after_key" in res["aggregations"]["my_bucket"].keys():
        after_key = res["aggregations"]["my_bucket"]["after_key"]

        my_metric["aggs"]["my_bucket"]["composite"].update({"after": after_key})
        res = es.search(index=ES_INDEX, body=my_metric, size=0)
        int_buckets = res["aggregations"]["my_bucket"]["buckets"]
        buckets = buckets + int_buckets
        return buckets


if __name__ == "__main__":
    for query in queries:
        print(datetime.now())
        to_index = index_query(path=query, es=es, from_index=ES_INDEX)
        a = bulk(es, to_index)
        print(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...