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
有谁能给点建议吗?

谢谢B

我建议使用字符串而不是数值。在索引过程中转换具有相同长度(例如0001000)的字符串中的所有数值(例如1000)。因此,如果您想搜索从0到20000的minSalary,那么您的查询字符串必须像这样:

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

最新更新