Прежде всего, извините за отсутствие 100% вопросов. Это проще объяснить с несколькими строками кода:Как отключить кеш запросов?
query = {...}
while True:
elastic_response = elastic_client.search(elastic_index, body=query, request_cache=False)
if elastic_response["hits"]["total"]) == 0:
break
else:
for doc in elastic_response["hits"]["hits"]:
print("delete {}".format(doc["_id"]))
elastic_client.delete(index=elastic_index, doc_type=doc["_type"], id=doc["_id"])
Я делаю поиск, а затем удалить все документы, а затем сделать поиск еще раз, чтобы получить следующую связку.
НО, но поисковый запрос дает мне те же документы! И это приводит к исключению 404 при удалении. Это должен быть какой-то кеш, но я ничего не нашел, «request_cache» не помогает.
Я, вероятно, может реорганизовать этот код, чтобы использовать пакетный удалить, но я хочу, чтобы понять, что здесь не так
P.S. я использую официальный клиент python.
Если вы добавили sleep() в течение 2 секунд после удаления всех документов, это сработает? –
Кроме того, почему бы вам не удалить весь индекс? –
@ Андрея сон помогает, поэтому еще один ключ к кешу. Какой кэш? :) Я не хочу удалять все документы только некоторые из них –