2011-12-20 39 views
3
之間的字段

我的solr架構中有一個字段爲「發佈日期」(不包括引號)。當我用「fl」(字段列表)參數激發查詢以便僅查看搜索結果的發佈日期時,由於此字段包含空格,因此我沒有在文檔響應中獲得任何內容。我嘗試使用+,%20,但仍然沒有結果。請幫忙。solr中的字段列表,帶有「fl」參數,用於空間在

+0

你有沒有試過「Post \\ Date」? – 2011-12-20 12:03:09

+3

恐怕你被困住了。儘管在低層次上,Lucene和Solr都沒有對字段名稱進行任何限制,但是如果在字段名稱中使用空格或其他特殊字符,某些內容將會中斷。我建議你改變你的模式並從你的字段名稱中清除所有這些空格。 – Chewie 2011-12-20 12:04:40

回答

2

我想通知我已經找到了解決方案。我嘗試過試驗,因此想出了一個解決方案,將\+作爲查詢中空白區域的替代品。因此,查詢應該是Post\+Date:[ranges]

我不能改變我的模式,因爲很多團隊都依賴於它,我們正在將我們的系統升級到新的搜索引擎。

+0

對不起,它得到了格式化..在+號前面輸入一個反斜槓\\ – 2011-12-24 10:41:20

+0

上一篇文章刪除//我已經放過的嘆息。發佈日期等字段的帖子格式爲發佈日期// +日期 – 2011-12-24 10:42:59

0

作爲一種可能的解決方法,您可能可以使用通配符來實現您的結果。使用solr wiki http://wiki.apache.org/solr/CommonQueryParameters#glob您可能會指定fl=Post*Date這可能會解決您的問題。我沒有證實這一點,但它可能工作。

更新:這似乎並不適用於我試過的任何版本的solr(1.4.0和3.6.1)。看起來這可能是在http://wiki.apache.org/solr/FieldAliasesAndGlobsInParams上討論過的,但它似乎沒有實現。

2

您可以指定通過包裝他們這樣的(什麼的Solr認爲瘋狂​​)字段:

field(Post Date) 

這實際上改變了返回的結果字段名也因此你會得到這樣的:

"field(Post Date)" : "2010-01-01" 

而不僅僅是你想象的名字。

+0

這適用於我。謝謝 !只需使用雙引號,字段(「學生名稱」)desc – Ananth 2016-11-07 19:37:18