2013-12-10 67 views
0

我是新手,剛開始使用lucene。我有一個小問題。我需要知道如何重寫lucene查詢。我在(SO)中閱讀了一篇建議使用 Query.rewrite的文章(查詢重寫器將高級查詢子句轉換爲性能更好的低級子句)。但爲此,它需要一個我不想使用的索引編寫器類型的對象。ReWriting Lucene查詢

任何其他方式實施建議。

感謝很多提前

問候

回答

1

它需要一個IndexReader,是的。您不能在沒有IndexReader的情況下將任意查詢重寫爲原始查詢,因爲重寫的表單取決於索引中的條款。例如,PrefixQuery將被重寫爲一組TermQueries,基於該索引中的術語匹配給定的前綴。需要IndexReader來閱讀這些條款。不能讀取索引的當前狀態,一般而言,MultiTermQueries不能被重寫。