Lucene查询praser,只读取某个字段查询,行为在2.9.3中改变

时间:2010-10-28 16:01:50

标签: java lucene

我需要我的查询解析器才能读取“文本”字段 例如,假设我的查询是: 文字:“这只狐狸”或者标题:“棕色的狗” 为了突出显示的目的,我需要解析器/搜索器只使用文本搜索:“this fox”部分。 在2.4中这很好,但自从升级到2.9.3后,情况发生了变化。

示例代码:

IndexSearcher is = new IndexSearcher(fsDir);
    QueryParser qp = new QueryParser("text", new StandardAnalyzer(nostop));
  qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
Query queryDiv;
    try {
      query = is.rewrite(queryParser.parse(query_str)); 
    }

    catch (ParseException e) {
      pw.print("error: Incorrect query format");
      pw.close();
      return; 
    }
Hits hits = is.search(queryDiv, sort);

    QueryScorer scorer = new QueryScorer(query, "text");
由于某些原因,我不知道,lucene 2.9.3现在在2.4中没有显示结果,因为它忽略了文档没有的字段,更不用说那里有OR条件。

任何想法?

1 个答案:

答案 0 :(得分:0)

请忽略这一点。我的逻辑中存在一个缺陷,即我正在应用于后端。谢谢你的期待