2014-09-01 48 views
2

我正在處理一個簡單的查詢重寫器,它對查詢字符串進行了一些更改。查詢重寫器應在查詢解析或發送到其他Solr節點之前更改查詢字符串。什麼是最適合這種代碼的Solr機制?目前我正在編寫一個自定義搜索組件來完成這項工作。該組件修改組件的prepare方法中原始參數q的值。它可以工作,但我想知道Solr是否有爲此設計的機制。解析之前重寫solr查詢

我沒有實現它作爲一個自定義查詢分析器,因爲查詢重寫過程可能很耗時,所以我不希望它被執行的每一個分片。

Solr是否內置了查詢重寫機制?

回答

0

AFAIK的標準方式是使用QParserPlugin

但是,如果您通過HTTP使用Solr,也許可以通過重寫URL來解決此問題?

-1

這似乎是一個壞主意。每當你改變查詢時,你都在有效地「解析」它,並且正在爲查詢解析器承擔全部責任。您可以在自定義查詢解析器中正確執行此操作。查詢重寫過程如何耗時?這可能不值得擔心......這就是縮放的目的。

+0

查詢重寫過程非常耗時,因爲爲了完成其工作,重寫器從外部源檢索數據。 – snakile 2014-10-28 16:42:53