Отключение скоринга в Lucene (.NET) - PullRequest
2 голосов
/ 14 апреля 2010

При поиске можно ли отключить оценку для любого запроса?

Сценарий состоит в том, что пользователь уточняет свой запрос, пробуя различные комбинации слов, фраз и т. Д., И нуждается в ответах в реальном времени (ну, по крайней мере, достаточно быстро) на количество обращений.

Время поиска сильно замедляется, когда из-за скоринга миллионы обращений, но пользователю все эти документы наплевать. Как только он увидит, что есть 1M + хиты, он начнет добавлять дополнительные слова в запрос. Опция «Сортировать по релевантности» позволила бы ему сделать это быстро, при этом возвращая счет обратно, когда количество попаданий разумно.

Возможно ли это?

Я использую Lucene.NET 2.9.2, но AFAIK он идентичен версии Java.

Ответы [ 2 ]

4 голосов
/ 18 апреля 2010

Попробуйте ConstantScoreQuery . Это только возвращает хиты, не забив их.

0 голосов
/ 14 апреля 2010

В Lucene 2.9 вы можете использовать собственный коллектор, который может делать все, что вы хотите (получать удары без очков).

http://hudson.zones.apache.org/hudson/job/Lucene-trunk/javadoc/all/org/apache/lucene/search/Collector.html

...