Делаю на php ->deleteByQuery() и сразу много раз ->index()
Выкидает ерор конфликт.
Есть возможность дождатся удаления? Спасибо.
Делаю на php ->deleteByQuery() и сразу много раз ->index()
Выкидает ерор конфликт.
Есть возможность дождатся удаления? Спасибо.
Здравствуйте Михаил,
Метод elasticsearch _delete_by_query принимает параметр wait_for_deletion. Значение по умолчанию - true, т.е. Elasticsearch вернет результат только по окончанию работы запроса. Подробнее тут.
Еще вы можете указать параметр refresh, который обновит все шарды и сделает результаты запроса доступными для поиска или в вашем случае уберет удаленные документы из поиска. По умолчанию этот параметр имеет значение false, так как эта команда выполняется регулярно каждую 1 секунду (если значение не было изменено явно). Подробнее о команде refresh
тут.
Я не знаком близко с PHP клиентом, однако согласно спецификации метод deleteByQuery поддерживает параметры. Попробуйте вызвать ваш метод с обоими параметрами имеющими значение true.
Если проблема не исчезнет, то вероятно она вызвана не методом удаления.
© 2020. All Rights Reserved - Elasticsearch
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant logo are trademarks of the Apache Software Foundation in the United States and/or other countries.