2011-07-18 39 views
2

當lucene想要計算查詢的權重時,它首先調用searcher.rewrite(查詢),該函數對每種查詢類型都做了什麼?在lucene中重寫查詢

回答

3

查詢重寫器將較高級別的查詢子句轉換爲性能較好的較低級子句。最終結果在功能上是相同的。

例如,對於Query.rewrite的Javadoc說:

專家:呼籲重新編寫查詢爲基本查詢。例如,PrefixQuery將被重寫爲由TermQuerys組成的布爾查詢。

如果Lucene要執行準確的查詢成本分析,則需要將查詢重寫爲最快的形式。