ConstantScoreRangeQuery в Lucene - PullRequest
       16

ConstantScoreRangeQuery в Lucene

2 голосов
/ 28 июня 2009

Как Lucene's ConstantScoreRangeQuery лучше, чем старый RangeQuery ?

В каком случае вы должны по-прежнему использовать RangeQuery?

1 Ответ

2 голосов
/ 28 июня 2009

Согласно документации RangeQuery в вашей ссылке, A ConstantScoreRangeQuery:

  • быстрее, чем RangeQuery.
  • не вызывает исключение BooleanQuery.TooManyClauses, если диапазон значений большой.
  • не влияет на оценку, основанную на нехватке отдельных терминов, которые могут совпадать.

Предположим, вы заинтересованы в том, чтобы более короткие термины оценивались выше (скажем, вы смотрите в диапазоне часов, но хотите, чтобы меньшие часы набирались выше - возможно, вы ищете "медленный" период дня для запуска процесс резервного копирования). В этом случае более старый RangeQuery кажется предпочтительным.

Следующим поколением будет TrieRangeQuery , которое в данный момент находится в разделе contrib. Это, вероятно, будет частью ядра Lucene 2.9. Он обеспечивает более быстрый диапазон запросов, чем оба других метода.

...