Lucene查询的替代方案是什么';什么条件?

Lucene查询的替代方案是什么';什么条件?,lucene,query-parser,Lucene,Query Parser,在Lucene 4.6.0中,有一种方法extractTerms,它提供了从查询()中提取术语的功能。但是,在Lucene 6.2.1中,它不再存在()。有有效的替代方案吗 我需要的是解析QueryParser生成的查询的术语(和Correspondent字段)。我暂时用以下代码解决了我的问题。更聪明的替代方案将被广泛接受: QueryParser qp = new QueryParser("title", a); Query q = qp.parse(query); Set<Term&g

在Lucene 4.6.0中,有一种方法extractTerms,它提供了从查询()中提取术语的功能。但是,在Lucene 6.2.1中,它不再存在()。有有效的替代方案吗


我需要的是解析QueryParser生成的查询的术语(和Correspondent字段)。

我暂时用以下代码解决了我的问题。更聪明的替代方案将被广泛接受:

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);
QueryParser qp=新的QueryParser(“标题”,a);
查询q=qp.parse(查询);
Set-termQuerySet=新HashSet();
权重w=searcher.createWeight(q,true,3.4f);
w、 提取术语(术语查询集);

我暂时用以下代码解决了我的问题。更聪明的替代方案将被广泛接受:

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);
QueryParser qp=新的QueryParser(“标题”,a);
查询q=qp.parse(查询);
Set-termQuerySet=新HashSet();
权重w=searcher.createWeight(q,true,3.4f);
w、 提取术语(术语查询集);

也许不是最好的答案,但一种方法是使用相同的分析器并标记查询字符串:

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();

也许不是最好的答案,但一种方法是使用相同的分析器并标记查询字符串:

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();

你能提供一个例子吗?我需要计算查询中每个术语的tfidf,所以我需要迭代它们。你能提供一个例子吗?我需要计算查询中每个术语的tfidf,所以我需要迭代它们。