Zend框架 - 搜索Lucene的确切短语

时间:2009-08-19 20:04:59

标签: zend-framework full-text-search

有没有办法查询Zend_Search_Lucene的索引以获得完全匹配?

$keyword = 'Summer 2009';

当我使用时:

$myIndex->find($keyword) 

我还收到“2009年夏季,2009年夏季”?

2 个答案:

答案 0 :(得分:0)

查询双引号字符串应该这样做:

$keyword = '"Summer 2009"';

答案 1 :(得分:0)

您的代码段将导致一个术语查询,其中Zend Search将生成一组令牌,这些令牌将针对所有索引字段进行尝试。这是因为如果将字符串传递给find(),则会将其传递给Query_Parser()。

您需要专门为此情况创建一个短语查询。

看起来像是:

   $query = new Zend_Search_Lucene_Search_Query_Phrase(array('Summer', '2009'));
   $index->find($query);

http://framework.zend.com/manual/en/zend.search.lucene.query-api.html包含更多信息。