В одном из наших проектов мы используем старую версию Lucene (2.3.2).Сейчас я смотрю на текущие версии Lucene (3.5.0) и пытаюсь переписать старый код.В старом проекте мы расширили TopFieldDocCollector, чтобы выполнить дополнительную фильтрацию в методе collect ().Однако у меня возникли проблемы с пониманием нового класса Collector, и я не смог найти хороший пример.
1) Метод setScorer ().Как / где я могу получить объект Scorer?
2) Метод collect ().Я думаю, мне нужно создать свою собственную коллекцию и сохранить интересующие меня docIds, правильно?
3) При расширении TopDocsCollector вместо этого мне нужно было бы реализовать PriorityQueue для использования в конструкторе, правильно?Кажется, для него нет стандартной реализации.Но мне все еще нужна моя собственная коллекция для хранения docIds (или, скорее, ScoreDocs) и вызова populateResults после завершения поиска?
В целом, кажется, что расширение Collector (намного) проще, чем расширение TopDocsCollector, номожет быть, я что-то упустил.