0

我有以下代码来创建 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

有人可以就此提出建议吗?

谢谢乙

4

1 回答 1

1

I suggest to use strings instead of numeric values. Convert all numeric values (e.g. 1000) in strings with the same length (e.g. 0001000) during the indexing process. So, if you want to search for a minSalary from 0 to 20000, your query string has to look like this:

$query = "minSalary:[0000000 TO 0020000]";
于 2011-04-11T06:16:22.743 回答