在Lucene的4.6.0有从查询(提供的术语的提取方法extractTerms 查询4.6.0 )。 然而,从Lucene的6.2.1,但它不再存在( 查询Lucene的6.2.1 )。 是否有一个有效的替代方案?
什么我需要的是解析由QueryParser的建立查询方面(和corrispondent领域)。
在Lucene的4.6.0有从查询(提供的术语的提取方法extractTerms 查询4.6.0 )。 然而,从Lucene的6.2.1,但它不再存在( 查询Lucene的6.2.1 )。 是否有一个有效的替代方案?
什么我需要的是解析由QueryParser的建立查询方面(和corrispondent领域)。
也许不是最好的答案,但一个方法是使用相同的分析仪和记号化的查询字符串:
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();
我已经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);