2011-12-15 3 views
0

私は唯一の第二列を返すインデックスZend Luceneはどのように数値範囲の検索を処理しますか?

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); 

の両方を取得するためのコードである必要があります。範囲クエリに基づいて明らかに返される必要がある最初の行を取得しなかったのはなぜですか?

答えて

0

これは年齢フィールドの間違った形式は、次の2つのフィールドに

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に保存しないということです。

関連する問題