Неучитывание deleted docs при подсчете _score это не bug, а feature
При создание индекса и terms dictionarу, мы подсчитываем и сохраняем для каждого термина idf и мы не пересчитываем idf если документы удаляются. Это позволяет нам сохранять индекс в неизменном форме и также позволяет делать запросы очень быстрыми. idf пересчитывается когда мы создаем новый индекс-сегмент, что происходит при merging.
А PIT надо еще тестировать на производительность - всегда найдется тот кто сделает 837 snapshot-а и будет жалосться на производительнолсть ФС.
Eсли индекс не меняется, opening еще один PIT - это очень дешевая операция
Я сейчас читаю, документацию на которую Игорь дал ссылку - она многое объясняет.
Согласитесь, всё же мысль не лишена логики, что при одном и том же запросе в неизмененный индекс _score ожидаешь тот же, в общем с этим ладно.
Я понимаю, что при асинхронной репликации есть какой то лаг накатывания, но тут то поток данных ни о чём. Тот индекс, что брали для примера сутки назад документов меньше 10000. Вот сегодня.
Да, репликация осуществляется Elasticsearch на уровне документа. Каждая шарда - это независимый индекс Lucene. Единственная гарантия тут - это то что все шарды содержат одинаковый набор не удаленных документов. Чистка удаленных документов и слияние сегментов происходит независимо на уровне Lucene.
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.