我有以下代码来创建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
有人可以就此提出建议吗?
由于 乙
答案 0 :(得分:1)
我建议使用字符串而不是数值。在索引过程中转换具有相同长度(例如0001000)的字符串中的所有数值(例如1000)。因此,如果要搜索0到20000之间的minSalary,则查询字符串必须如下所示:
$query = "minSalary:[0000000 TO 0020000]";