2013-09-10 2 views
0

Как я могу получить больше документов в lucene4.Here мой код.Lucene - Как получить больше документов

int limit = 1000; 
TopFieldColletor collector = TopFieldColletor.create(sort,limit,true,false,false,false); 
searcher.search(query,collector); 
ScoreDoc[] sds = collector.topDocs().scoreDocs; 
System.out.println("sd:" + sds.length); 
System.out.println("total:" + collector.getTotalHits()); 

Это мой результат:
сд: 1000
всего: 9060
Мой вопрос я получил 1000 док, как получить следующий 1000, до конца не брать.

ответ

0

Смотрите этот вопрос прямого ответа на ваш вопрос: Paging Lucene's search results

То есть, я еще не видел пользователя, который будет пытаться смотреть на 1000 результатов поиска. Большинство из них даже не будут смотреть за пределы первых 100.

Таким образом, гораздо эффективнее создавать метаданные поиска, которые позволяют пользователям достичь желаемого результата в первых 10 результатах (вершинах). То, что Google потратил большую часть умственной силы: получить лучшие результаты на вершине.

Если вы хотите это для обработки компьютером, то ответ будет следующим: Поднимите предел. Попросите 10 000 документов на запрос. Невозможно сказать Люцене «продолжить» или возобновить поиск.

+0

Да, они не будут выглядеть так много результатов. Но текущий асинхронный запрос. Могу ли я получить документ в процессе запроса. Я хотел бы найти такой способ в lucene. –

+0

Как я уже сказал, текущий API поддерживает только более высокий лимит. –

Смежные вопросы