Lucene Query 的 extractTerms 的替代方案是什么?

What is an alternative for Lucene Query's extractTerms?

在 Lucene 4.6.0 中,有方法 extractTerms 提供从查询中提取术语 (Query 4.6.0). However, from Lucene 6.2.1, it does no longer exist (Query Lucene 6.2.1)。有有效的替代方案吗?

我需要的是解析由 QueryParser 构建的查询的术语(和相应字段)。

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

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

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

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