【发布时间】:2012-06-02 15:50:33
【问题描述】:
我正在尝试使用 Zend 搜索 Lucene 对字段进行通配符。
$index = Zend_Search_Lucene::open("/data/my_index1");
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('date',$date->format('dmY')));
$index->addDocument($doc);
$index->updateIndex();
$hits = $index->find('2012*');
最后一行不起作用,因为我的日期类似于02062012。如果我尝试使用$hits = $index->find('*2012*'); 也不起作用。
有什么想法吗?
【问题讨论】:
-
您应该检查日期是否正确编入索引。一些分析器不会标记数字和日期。您应该使用 luke 浏览您的索引,看看您的索引是否包含预期的术语。
-
我认为索引还可以,因为如果我尝试使用
$hits = $index->find('02062012');会正常工作。 -
你试过
$index->find('0206*');吗?我不确定,但我认为在查询中使用星号不起作用,因为它正在查找包含 2012 后跟某些内容的术语。