【发布时间】:2013-12-11 00:29:42
【问题描述】:
我是新手,刚开始接触lucene。我有一个小问题。我需要知道如何重写 lucene 查询。我在(SO)中阅读了一篇建议使用的文章 Query.rewrite(查询重写器将更高级别的查询子句转换为性能更好的更低级别的子句。)。但是为此它需要一个我不想使用的索引编写器类型的对象。
任何其他实施方式的建议。
非常感谢
问候
【问题讨论】:
标签: lucene
我是新手,刚开始接触lucene。我有一个小问题。我需要知道如何重写 lucene 查询。我在(SO)中阅读了一篇建议使用的文章 Query.rewrite(查询重写器将更高级别的查询子句转换为性能更好的更低级别的子句。)。但是为此它需要一个我不想使用的索引编写器类型的对象。
任何其他实施方式的建议。
非常感谢
问候
【问题讨论】:
标签: lucene
需要IndexReader,是的。没有 IndexReader,您无法将任意查询重写为原始查询,因为重写的形式取决于索引中的术语。例如,PrefixQuery 将被重写为一组TermQueries,基于索引中的哪些术语与给定前缀匹配。阅读这些条款需要IndexReader。在无法读取索引当前状态的情况下,MultiTermQueries 通常无法重写。
【讨论】: