Zend lucene - 在范围内搜索

时间:2011-04-09 03:38:03

标签: zend-search-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 个答案:

答案 0 :(得分:1)

我建议使用字符串而不是数值。在索引过程中转换具有相同长度(例如0001000)的字符串中的所有数值(例如1000)。因此,如果要搜索0到20000之间的minSalary,则查询字符串必须如下所示:

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