Lucene查询解析器:将ConstantCoreQuery转换为SpanQuery

Lucene查询解析器:将ConstantCoreQuery转换为SpanQuery,lucene,Lucene,我有一个自定义的“短语查询解析器”,由一些不可用的第三方开发。 该解析器将多个查询类型重写为多个查询(每种类型以某种不同的方式)。 问题是,它是为Lucene v3编写的,现在我正在将搜索迁移到L.v4,而该解析器开始获取另一个要重写的类型(ConstantScoreQuery),这在以前是不期望的,现在它不由该解析器处理 有人能帮我解释一下如何将ConstantCoreQuery转换成一种SpanQuery类型吗 致以最良好的祝愿, Piotr是一个包装器。很可能它仍在生成一个SpanQuer

我有一个自定义的“短语查询解析器”,由一些不可用的第三方开发。 该解析器将多个查询类型重写为多个查询(每种类型以某种不同的方式)。 问题是,它是为Lucene v3编写的,现在我正在将搜索迁移到L.v4,而该解析器开始获取另一个要重写的类型(ConstantScoreQuery),这在以前是不期望的,现在它不由该解析器处理

有人能帮我解释一下如何将ConstantCoreQuery转换成一种SpanQuery类型吗

致以最良好的祝愿,
Piotr是一个包装器。很可能它仍在生成一个
SpanQuery
(或任何其他预期的查询类型),然后用
ConstantScoreQuery
包装该查询。我想知道
ConstantCoreQuery.getQuery()
是否返回您可以使用的内容。

谢谢您的提示-我发现它实际上是一个过滤器,而不是查询。下一件事是如何处理这个过滤器??我可以简单地忽略整个包装器查询,还是应该以某种方式进一步处理过滤器?如果没有关于如何使用它的更多细节,很难说清楚,但我想说,您可能无法安全地忽略它。您可以尝试保存它,在对其余部分进行最终查询后,将其传递到
搜索
调用中(即,如果您使用
搜索(int,query)
,则可以使用调用
搜索(int,query,Filter)
)来添加它)。