2013-03-13 3 views
0

У меня есть форма веб-страницы, которая выполняет поиск всех фотографий, которые пользователи загрузили на веб-сайт. Проблема в том, что поиск Lucene в настоящее время извлекает все фотографии, соответствующие критериям поиска, даже если мы показываем только 21 фотографию на странице. Это вызывает серьезные проблемы с производительностью. Можно ли ограничить количество фотографий, полученных до 21, чтобы повысить производительность?Lucene: Как ограничить количество просмотров?

Точно так же, как мы можем ограничить поиск определенной категорией, используя, например, (Категория: Новый), аналогичный способ ограничить количество обращений?

+0

Lucene 'Searcher' имеет соответствующие интерфейсы API, которые позволяют предельные результаты поиска. Но, не видя кода, мы не можем сообщить, что именно нужно исправлять. – mindas

ответ

0

Это то, что я делаю: Метод поиска имеет число результатов в качестве параметра. Я прохожу страницу pageSize *. Итак, для страницы 1 я получаю только документы pageSize.

Затем я загружаю документ (используя функцию поиска.doc()) для необходимой мне страницы.

TopDocs hits = searcher.search(lucene_query, pageSize*(page)); 

ScoreDoc[] scoreDocs = hits.scoreDocs; 

int j = startIndex; 
int rem = 0; 

while (j < scoreDocs.length && (endIndex==0 || j<endIndex)) { 

    ScoreDoc sd = scoreDocs[j]; 
    Document d = searcher.doc(sd.doc); 

}

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