2011-04-09 40 views
0

搜索我有下面的代碼創建了Zend Lucene索引Zend的Lucene的 - 範圍內

 $doc->addField(Zend_Search_Lucene_Field::UnStored('keywords', $job->getKeywords())); 
     $doc->addField(Zend_Search_Lucene_Field::UnStored('title', $job->getTitle())); 
     $doc->addField(Zend_Search_Lucene_Field::UnStored('region', $job->getRegion())); 
     $doc->addField(Zend_Search_Lucene_Field::keyword('minSalary', $minSalary)); 
     $doc->addField(Zend_Search_Lucene_Field::keyword('maxSalary', $maxSalary)); 
     $doc->addField(Zend_Search_Lucene_Field::UnStored('type', $job->getType())); 

,我的搜索查詢

$query = 'minSalary:[0 TO 20000]'; 

在這裏,我試圖讓他們minSalary是所有作業等於或小於20000.但我得到的結果有以下minSalary值的工作

110000 
100000 
20000 
10000 

任何人都可以在這個?

感謝 乙

回答

1

我建議使用字符串而非數值。在索引編制過程中,以相同長度(例如0001000)轉換字符串中的所有數值(例如1000)。所以,如果你想搜索0到20000的minSalary,你的查詢字符串應該是這樣的:

$query = "minSalary:[0000000 TO 0020000]";