Lucene.NET Фасетный поиск

Я строю многогранный поиск с Lucene.NET, не используя Solr. Я хочу получить список элементов навигации в текущем запросе. Я просто хочу убедиться, что я указал в правильном направлении. У меня есть идея, которая будет работать, но я не уверен, что это правильный способ сделать это.

В настоящий момент я планирую создать список всех доступных фильтров, а затем пройтись по списку, используя методику, описанную здесь, чтобы получить счетчик для каждого, за исключением фильтров, которые дают нулевые результаты. Это звучит нормально, или я что-то упустил?

2 ответа

Решение

Итак, я закончил свою реализацию. В процессе я много копался в исходном коде Lucene и Solr и рекомендую не использовать реализацию, описанную в связанном вопросе, по нескольким причинам. Не последним из которых является то, что он основан на обесцененном методе. Это излишне умно; просто написание собственного сборщика даст вам более быстрый код, который использует меньше оперативной памяти.

Да уж. ты скучаешь по Solr. математика, которую они использовали для выполнения граненого поиска, очень впечатляет, почти нет веских причин не использовать его. Единственное исключение, которое я могу найти, - если ваш индекс достаточно мал, вы можете поддержать свою собственную теорию, в противном случае, это хорошая идея - встать на их плечи.

Другие вопросы по тегам