2013-02-08 90 views
0

我有一個RoR應用程序使用太陽黑子來訪問Solr。所有最新版本。使用Solr /太陽黑子排序哈希值

我的索引文檔有一個散列,其中的鍵是user_id,值是用戶第一次看到文檔的時間。

如何根據用戶的日期值對搜索結果進行排序?我希望這是在Solr而不是在RoR中完成的,因爲所涉及的數據量很大 - 拉入所有結果只是爲了在RoR中進行排序並不會很好。

這可能是Solr本地的嗎?如果是這樣,那麼太陽黑子隊也可以處理它嗎?

回答

0

在Solr REST API中,按時間字段進行排序,您只需添加一個sort查詢參數。例如,如果要在訪問文檔時對user_id的1,2和3進行排序,則可以發出類似於 http://localhost:8983/solr/CORE/select?q=user_id:(1 OR 2 OR 3)&sort=timefield desc 的查詢來solr。

我不知道太陽黑子或紅寶石,但看着搜索範例http://sunspot.github.com/我想你可以做某事。喜歡這個?

Post.search do 
    user_id '1 OR 2 OR 3' 
    order_by :timefield, :desc 
end 
+0

問題是,每個用戶都有自己的訪問時間,我需要按照該值對特定用戶進行排序。我不明白這個解決方案如何處理我的要求。 – Eric 2013-02-08 22:03:25

+0

我不知道你實際上可以將散列存儲爲solr文檔中的字段。我以爲你只能存儲簡單的類型,如int,float,string,text和多值域?我誤解了你的qn。我很好奇,你能告訴你如何在文檔中存儲散列嗎? – arun 2013-02-08 23:48:09

+0

我認爲你是對的。任何想法如何基於每個文檔中的每個用戶屬性對每個用戶進行不同的排序? – Eric 2013-02-09 21:39:08