重写Lucene查询

时间:2013-12-10 10:41:23

标签: lucene

我是新手,刚开始使用lucene。我有一个小问题。我需要知道如何重写lucene查询。我在(SO)中读到了一篇建议使用的文章 Query.rewrite(查询重写器将更高级别的查询子句转换为性能更好的低级子句。)。但为此,它需要一个我不想使用的索引编写器类型的对象。

任何其他实施方式的建议。

非常感谢提前

问候

1 个答案:

答案 0 :(得分:1)

需要IndexReader,是的。如果没有IndexReader,您不能将任意查询重写为原始查询,因为重写的表单取决于索引中的术语。例如,PrefixQuery将被重写为一组TermQueries,基于索引中的条款与给定前缀匹配。阅读这些条款需要IndexReader。由于无法读取索引的当前状态,因此MultiTermQueries通常无法重写。