В дополнение к подходу token_word | docid,position;docid,position;docid,position;
я предлагаю добавить запись token_word | docid,frequency;docid,frequency;docid,frequency;
.
Таким образом, вы должны рассмотреть документ только один раз при ответе на запрос. Это может увеличить предварительную обработку, но уменьшить ненужные накладные расходы, когда пользователь запрашивает.
У вас могут быть проблемы с несколькими запросами по словам (т.е. почти все запросы), поэтому используйте docid,position
подход для некоторых результатов, которые близки или связаны
Что бы я сделал, если бы вы были на вашем месте: поскольку вы показываете 10 результатов на странице, я бы проиндексировал все документы в соответствии с частотой, а затем проиндексировал только первые 10 для первой страницы в соответствии с положением. Затем сделайте то же самое для второй страницы, если пользователь переместится туда.
Недостатком этого подхода является то, что иногда первые несколько результатов на странице n + 1 могут оказаться лучше, чем последние несколько на странице n .