elasticsearch에서 여러 인덱스의 대량 업데이트 (이 방법은doc의 id에 따라)
1548 단어 python 기초Elasticsearch
gol_index_name = "index_*"
es_search_optionsss = {
"query":{"match_all": {}}
}
es_result = es_client.search(index=gol_index_name, doc_type="index_type",
body=es_search_optionsss)
ids_list = []
# ( )
index_set = set()
for i in es_result["hits"]["hits"]:
id = i["_id"]
index_name = i["_index"]
index_set.add(index_name)
ids_list.append({"id": id, "index_name": index_name})
index_all_list = list(index_set)
# [[],[],[]]
index_id_list = [[] for i in range(len(index_all_list))]
# for id
# index_id_list 0 index_all_list 0 index_id_list 0
for i in ids_list:
index_count = index_all_list.index(i["index_name"])
index_id_list[index_count].append(i["id"])
#
for i, j in zip(index_all_list, index_id_list):
updateBody = {
"query": {
"bool": {
"filter": {"terms": {"_id": j}}
}
},
"script": {
"inline": "ctx._source.is_linked = params.is_linked",
"params": {
"is_linked": 1
},
"lang": "painless"
}
}
update_result = es_client.update_by_query(index=i, doc_type='index_type',
body=updateBody)
es_client.indices.flush()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Chapter 10. 함수에 대한 추가적인 설명들전에 함수에 대해 소개를 했을 때 '값을 전달받지 않는 함수', '값을 전달받는 함수', '값을 반환하는 함수(return)' 이렇게 총 세 개를 소개했었는데요! 이번에 설명할 부분은 값을 전달받는 함수에 대해 더 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.