2012-03-27 86 views
0

我試圖在solr上進行簡單的分組,但沒有成功,只有2個字段的數據庫ID和名稱嘗試在字段「名稱」上進行分組。我希望得到一個列名爲「yosi」但我得到4行 我應該在PARAMS更改下面solr上的分組

object(Apache_Solr_Response)#3 (5) { 
    ["_response":protected]=> 
    object(Apache_Solr_HttpTransport_Response)#4 (5) { 
     ["_statusCode":"Apache_Solr_HttpTransport_Response":private]=> 
     int(200) 
     ["_statusMessage":"Apache_Solr_HttpTransport_Response":private]=> 
      string(2) "OK" 
     ["_mimeType":"Apache_Solr_HttpTransport_Response":private]=> 
      string(10) "text/plain" 
       ["_encoding":"Apache_Solr_HttpTransport_Response":private]=> 
      string(5) "utf-8" 
       ["_responseBody":"Apache_Solr_HttpTransport_Response":private]=> 
       string(767) "{ 
      "responseHeader":{ 
        "status":0, 
       "QTime":2, 
       "params":{ 
        "indent":"true", 
      "group.query":"yosi", 
       "json.nl":"map", 
     "hl.fl":"name", 
      "wt":"json", 
      "hl":"true", 
       "version":"2.2", 
       "rows":"100", 
      "fl":"*,score", 
     "start":"0", 
     "q":"yosi", 
     "group.field":"name", 
     "group":"true", 
     "qt":"standard"}}, 
       "response":{"numFound":4,"start":0,"maxScore":1.8754687,"docs":[ 

請讓我知道爲什麼它不會做的工作 感謝 Yosi

+0

請您發佈您的完整回覆? – javanna 2012-03-27 08:09:47

回答

0

這已經有一段時間了,但對某人來說可能還是有用的。

首先,Solr分組(字段摺疊)僅在Solr 3.3以後纔可用。確保你使用的是這個版本或更新的版本,因爲對於早期的版本,基本上沒有解決方案(好吧,有補丁程序增加了這個功能,但是你仍然需要重新構建你的軟件包,這比升級你的版本幾乎沒有危險)。

在分組請求的詳細資料,請http://wiki.apache.org/solr/FieldCollapsing

它指出,您使用的是分組字段「必須是單值的,而且必須是索引,或者是具有價值源的另一字段類型並在函數查詢中工作「。在Solr 3.3中,它也可以是索引文本或字符串字段。檢查您的架構XML,看看是否適合您。

另一個想法是字段名稱name可能是保留的,所以如果上面的建議沒有幫助,嘗試一些其他索引文本字段(這是一個猜測,據我所知在Solr中有保留字符但未保留字段名稱)。

P.S.您可能還想將"group.query":"yosi"更改爲"group.query":"name: yosi"(與特定問題無關,但顯然在您的情況下會更好)。