В настоящее время я работаю с набором данных на основе времени.
Благодаря 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)