Я прочитал статью Дуга Реттинга; "Оптимизация пространства для общего рейтинга.
Поскольку это было написано давно, мне интересно, какие алгоритмы используют lucene (в отношении просмотра списка проводок и расчета счета, ранжирования).
В частности, описанный здесь алгоритм общего ранжирования включает в себя просмотр всего списка проводок для каждого термина запроса, поэтому в случае очень распространенных терминов запроса, таких как "желтая собака", у любого из двух терминов может быть очень длинный список проводок в случае веб-поиска. Все ли они действительно пройдены в текущей Lucene/Solr? Или есть эвристика для усечения списка?
В случае возвращения только лучших результатов k я могу понять, что распределение списка проводок на нескольких машинах, а затем объединение верхнего-к каждого из них будет работать, но если мы должны вернуть "100-й результат страница", то есть результаты оцениваются с 990-1000-го, тогда каждый раздел должен будет найти верхнюю 1000, поэтому разделение не поможет.
В целом, есть ли какая-либо современная подробная документация по внутренним алгоритмам, используемым Lucene?