2012-06-02 43 views
0

我想使用Zend搜索Lucene来通配一个字段。使用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*');也不起作用。

有什么想法?

+0

你应该检查日期是否正确索引。一些分析仪不会标记数字和日期。您应该使用luke浏览您的索引,以查看索引是否包含预期条款。 – dbrumann

+0

我认为索引是好的,因为如果我尝试用'$ hits = $ index->​​ find('02062012');'正在按照它应该的工作。 –

+0

你试过'$ index->​​ find('0206 *');'?我不确定,但我认为在您的查询中使用星号不起作用,因为它正在寻找包含2012年的术语以及其他内容。 – dbrumann

回答

0

您还应该验证您的搜索配置是否允许前导'*',因为这不是Lucene中的默认设置。