私は 2 つの異なるアプローチを使用してインデックスを検索しています。私は自分の間違いが何であるか疑問に思っています。
これがうまくいく私の最初のアプローチです:
$query = '+language:EN +country:US';
$hits = $index->find($query);
私は同じことをしようとしましたZend_Search_Lucene_Index_Term
:
$query = new Zend_Search_Lucene_Search_Query_MultiTerm();
$query->addTerm(new Zend_Search_Lucene_Index_Term('EN', 'language'), true);
$query->addTerm(new Zend_Search_Lucene_Index_Term('US', 'country'), true);
$hits = $index->find($query);
これでは結果が出ません。このオプションを削除するとtrue
、検索が OR 検索 (country=US OR language=EN) に変換されます。
2 番目のアプローチの作成は、 http://framework.zend.com/manual/1.12/de/zend.search.lucene.query-api.htmlにあるドキュメントに基づいています。