2014-08-27 105 views
0

我有一個索引在Solr字段名稱中帶有$符號。 Reindexing不是一種選擇。 Solr中有函數查詢,其中$是變量標識符(See here)。當我打電話查詢,檢索特定字段(FL = $ created_dt,名),Solr的會返回一個錯誤

錯誤解析字段名:缺少PARAM created_dt在解析函數 '$ created_dt,$名稱'

我知道這是因爲Solr將其解釋爲一個變量。有什麼方法可以解決它嗎?

回答

0

一般來說,正如您發現的那樣,避免Solr中字段名稱中的大多數符號是一個好主意。特別是$用於允許在解析時替換查詢字符串中的單獨參數(例如foo=$qq&qq=bar)。

然而,對於fl可以使用的參數有一個小小的破解:如果第一個字段沒有符號,它應該解析OK。如果你使用fl=name,$created_dt,它會起作用(儘管你可能也想要包含$ name,但是如果是這樣的話,可以使用另一個沒有$的字段名)。 &fl=name,$foo_i至少在4.9.0下工作。

您可能希望規劃將來遷移到更規範化的字段名稱。

+1

我已經在沒有$ sign的請求中提交了fl,它是由Solr添加的。這確實可行,但如果在此之後添加另一個帶有$符號的參數,它將無法顯示任何字段,即如果請求中的fl爲name,$ foo1,$ foo2,則響應將返回文檔,但不帶任何字段。 – Windys 2014-08-27 11:48:49