2012-06-02 80 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中的默認設置。