我有以下代码来创建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
有谁能给点建议吗?谢谢B
我建议使用字符串而不是数值。在索引过程中转换具有相同长度(例如0001000)的字符串中的所有数值(例如1000)。因此,如果您想搜索从0到20000的minSalary,那么您的查询字符串必须像这样:
$query = "minSalary:[0000000 TO 0020000]";