Запрос всех результатов в Lucene IndexSearcher - PullRequest
5 голосов
/ 26 октября 2011

Я работаю с классом SearchFiles в каталоге Lucene contrib / demo. Вместо того, чтобы искать результаты в разбивке на страницы, я хочу получить все документы, которые соответствуют запросу. Есть ли способ сделать это с помощью существующего API (3.4)? Похоже, что все функции поиска требуют целое число, указывающее количество попаданий для возврата.

Демо-код выглядит как

TopDocs results = searcher.search(query, 5 * hitsPerPage);
ScoreDoc[] its = results.scoreDocs;

Который будет возвращать только фиксированное количество результатов

Ответы [ 2 ]

6 голосов
/ 08 апреля 2014

Если вы используете Lucene Reader, то есть IndexReader , вы можете помочь себе, написав

TopDocs results = searcher.search(query, reader.numDocs());

Это обеспечит отсутствие результатов поиска.

3 голосов
/ 26 октября 2011

Напишите свой Collector и используйте его как searcher.Search(query, new MyCollector());

http://lucene.apache.org/java/3_4_0/api/core/org/apache/lucene/search/Collector.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...