ZF2 Lucene查询不返回任何内容-Luke中的相同查询返回预期结果

ZF2 Lucene查询不返回任何内容-Luke中的相同查询返回预期结果,lucene,zend-framework2,Lucene,Zend Framework2,在ZF2中,我使用以下代码生成Lucene查询: $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); $ter

在ZF2中,我使用以下代码生成Lucene查询:

    $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
$query=new Lucene\Search\query\Boolean();
$term=newlucene\Index\term($search->type,'type');
$subqueryTerm=new Lucene\Search\Query\Term($Term);
$query->addSubquery($subqueryTerm,true);
$term=new Lucene\Index\term(“[+=]”,“'max_price”);
$subqueryTerm=new Lucene\Search\Query\Term($Term);
$query->addSubquery($subqueryTerm,true);//必修的
将生成以下查询:

+(type:Buying) +(min_price:[+<= 160.00]) +(max_price:[160.00 >=])
+(类型:购买)+(最低价格:[+=])
当我在ZF2中运行此查询(
$hits=$index->find($query);
)时,返回一个空数组,但是当我使用手动运行针对索引的查询时,它会返回我期望的结果

我需要在代码中修改什么才能使其返回与Luke相同的结果

我使用两个系统的默认分析仪:

  • 卢克:
    org.apache.lucene.analysis.KeywordAnalyzer
  • ZF2:(我认为是)
    \ZendSearch\Lucene\Analysis\Analyzer\Common\Text

我需要使用不同的QueryParser吗?

您正在搜索术语“[+认为它可能与我使用的str\u pad($input,10,0,str\u pad\u LEFT)的长度有关)因此存储值类似于
0000432.10
。我也以同样的方式格式化查询。同样,它在Luke中有效,但不适用于ZF2。