У меня есть файлы Lucene, проиндексированные в соответствии с идентификаторами страниц (UniqueKey). и один документ может иметь несколько страниц. Теперь, когда пользователь выполняет поиск, он предоставляет нам страницы, соответствующие критериям поиска.
Я использую Lucene.Net 2.9.2
У нас есть 2 проблемы ...
1- Размер файла составляет около 800 ГБ, и он имеет 130 миллионов строк (страниц), поэтому время поиска было очень медленным (все запросы занимали более минуты (нам нужно только вернуть ограниченные строки за раз)
Чтобы преодолеть проблему с производительностью, я перешел на SOLR, которая разрешила проблему с производительностью (что довольно странно, поскольку я не использую какие-либо дополнительные функции, предоставляемые SOLR, такие как sharding и т. Д. - возможно, Lucene.NET 2.9.2 не действительно эквивалентно производительности по сравнению с той же версией JAVA ??), но теперь у меня есть другая проблема ...
2- Отдельный «документ lucene» - это одна страница, но я хочу показать результаты, сгруппированные по «реальным документам». Сколько результатов мне нужно вернуть, должно быть настроено на основе «реальных документов», а не «страниц» (потому что именно так я хочу показать пользователю).
Итак, допустим, мне нужно 20 «реальных документов» и ВСЕ страницы в них, которые соответствуют критериям поиска (не имеет значения, если один документ содержит 100 страниц, а другой - только 1).
Из того, что я смог получить на форумах SOLR, можно сказать, что этого можно добиться с помощью патча SOLR-236 (свертывание полей), но я не смог правильно применить патч с транком (выдает много ошибок).
Это действительно бес для меня, и у меня не так много времени, так что кто-нибудь может отправить мне бинарный файл SOLR 1.4.1 с этим патчем или помочь мне, если есть какой-либо другой способ.
Я был бы очень признателен. Спасибо !!