を返す私は、Luceneクエリを生成するには、次のコードを使用しています:ZF2 Luceneクエリは何も返しません - ルークで同じクエリがZF2では、予想される結果
次のクエリを生成$query = new Lucene\Search\Query\Boolean();
$term = new Lucene\Index\Term($search->type, 'type');
$subqueryTerm = new Lucene\Search\Query\Term($term);
$query->addSubquery($subqueryTerm, true);
$term = new Lucene\Index\Term('[+<= ' . $search->purchase_value . ']', 'min_price');
$subqueryTerm = new Lucene\Search\Query\Term($term);
$query->addSubquery($subqueryTerm, true); // required
$term = new Lucene\Index\Term('[' . $search->purchase_value . ' >=]', 'max_price');
$subqueryTerm = new Lucene\Search\Query\Term($term);
$query->addSubquery($subqueryTerm, true); // required
:
+(type:Buying) +(min_price:[+<= 160.00]) +(max_price:[160.00 >=])
このクエリをZF2($hits = $index->find($query);
)で実行すると空の配列が返されますが、Lukeを使用してインデックスに対してクエリを手動で実行すると、期待している結果が返されます。
Lukeと同じ結果を返すには、コードを変更する必要がありますか?
私は両方のシステムのデフォルトのアナライザを使用しています:
- ルーク:
org.apache.lucene.analysis.KeywordAnalyzer
- ZF2:(私はだと思う)
\ZendSearch\Lucene\Analysis\Analyzer\Common\Text
私は別のQueryParserを使用する必要がありますか?
これは数値の長さに関係していると思うので、私は 'str_pad($ input、10、0、STR_PAD_LEFT)'を使っていますので、格納された値は '0000432.10'に似ています。また、同じ方法でクエリの書式を設定しています。再び、それはルークでは動作しますが、ZF2では動作しません。 –