0

我在索引中有这个字段

id    name                   genders          ages
1     "John Doe and Co."     "male male"      "18 20" 
2     'Mr. and Mrs. Joe Dee' "male female"    "25 27"

这是检索两行的代码

$min_age = '19'
$max_age = '26';

$ages_query = new Zend_Search_Lucene_Search_Query_Range(new Zend_Search_Lucene_Index_Term($min_age, 'ages'), new Zend_Search_Lucene_Index_Term($max_age, 'ages'), TRUE);

$lucene_query = new Zend_Search_Lucene_Search_Query_Boolean();
$lucene_query->addSubquery($ages_query, null);

我只返回第二行。为什么根据范围查询明确应该返回第一行时我没有得到第一行?

4

1 回答 1

0

这是年龄字段的错误格式,您应该分成两个字段

age_from : 18
age_to   : 20

询问 :-

 +age_from:[19 TO *]
 +age_to:[* TO 26 *]

我不确定你是否与这个问题有关:Zend Lucene and range search on a field with multiple values

但这个想法是不要将 CSV 存储到 lucene 中。

于 2011-12-15T15:40:31.623 回答