什么是Lucene的查询的extractTerms的方法吗?(What is an alternat

2019-10-30 08:22发布

在Lucene的4.6.0有从查询(提供的术语的提取方法extractTerms 查询4.6.0 )。 然而,从Lucene的6.2.1,但它不再存在( 查询Lucene的6.2.1 )。 是否有一个有效的替代方案?

什么我需要的是解析由QueryParser的建立查询方面(和corrispondent领域)。

Answer 1:

也许不是最好的答案,但一个方法是使用相同的分析仪和记号化的查询字符串:

Analyzer anal = new StandardAnalyzer();
TokenStream ts = anal.tokenStream("title", query); // string query
CharTermAttribute termAtt = ts.addAttribute(CharTermAttribute.class);
ts.reset();
while (ts.incrementToken()) {
    System.out.println(termAtt.toString());
}
anal.close();


Answer 2:

我已经temporarely解决了我的问题,下面的代码。 智慧的替代品将被广泛接受:

QueryParser qp = new QueryParser("title", a);
Query q = qp.parse(query);
Set<Term> termQuerySet = new HashSet<Term>();
Weight w = searcher.createWeight(q, true, 3.4f);
w.extractTerms(termQuerySet);


文章来源: What is an alternative for Lucene Query's extractTerms?