Для вашей цели вы не можете использовать
Zend_Search_lucene::setResultSetLimit(N)
потому что он дает вам только первые N элементов.
Ограничение результирующего набора
Самый дорогой в вычислительном отношении
часть поиска - оценка
расчет. Это может занять несколько
секунд для больших наборов результатов (десятки
тысячи просмотров).
Zend_Search_Lucene дает
возможность ограничить размер набора результатов
с getResultSetLimit () и
Методы setResultSetLimit ():
$currentResultSetLimit = Zend_Search_Lucene::getResultSetLimit();
Zend_Search_Lucene::setResultSetLimit($newLimit);
Значение по умолчанию 0 означает «нет»
ограничение.
Это не дает «лучших N» результатов,
но только «первый N».
Как вы можете искать только 10 результатов и определять их как лучшие? Вы должны выполнить поиск по всему индексу, чтобы определить наилучшие результаты.
По умолчанию результаты поиска упорядочены по баллам. Посмотрите документацию http://framework.zend.com/manual/1.11/en/zend.search.lucene.searching.html
Кстати, что бы вы ни делали с Zend Lucene, подумайте об использовании другой поисковой системы, такой как Solr . Я использую это во многих проектах, и я рекомендую использовать это. Это намного быстрее и лучше управлять. Чтобы использовать его в проекте Zend Framework, вы должны использовать solr php клиент .