【发布时间】:2010-10-07 20:37:16
【问题描述】:
我的 Lucene 查询通常包含一堆 AND 组合字段。 是否可以再次从 Query 对象中取出查询到的字段?
【问题讨论】:
标签: c# lucene.net highlighting full-text-search
我的 Lucene 查询通常包含一堆 AND 组合字段。 是否可以再次从 Query 对象中取出查询到的字段?
【问题讨论】:
标签: c# lucene.net highlighting full-text-search
您的意思是提取术语或字段名称吗?由于您已经知道您正在处理 BooleanQuery,因此要提取字段,您可以简单地迭代 BooleanQuery.getClauses() 返回的 BooleanClause 数组,将每个子句重写为其基本查询 (Query.rewrite) 并递归应用,直到您有一个 TermQuery在你的手上。
如果您确实是指术语提取,我不确定 Lucene.NET,但在 Java Lucene 中,您可以使用 org.apache.lucene.search.highlight.QueryTermExtractor;你将一个(重写的)查询传递给它的一个 getTerms 重载并获得一个 WeightedTerms 数组。
据我所知,使用这种技术的缺点是:
不管怎样,我希望这足以让你开始。
【讨论】: