Zend_Search_Lucene限制结果集

时间:2011-04-05 13:44:05

标签: zend-framework zend-search-lucene

有没有办法通过最佳 N 结果来限制结果集?如果我使用Zend_Search_lucene::setResultSetLimit(10),根据我的排序声明,我只会获得10个结果而不是10个最佳结果。

1 个答案:

答案 0 :(得分:0)

出于您的目的,您无法使用

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框架项目中使用它,您必须使用solr php client