2011-12-13 40 views
-1

如果該字段是非標記化的(即:沒有分析器)或使用分析器,則可以在文檔的「分數」或任何multiValued =「false」索引=「true」只產生一個單一的期限(即:使用KeywordTokenizer)是否有任何解決方法排序多值字段?

文檔: - http://wiki.apache.org/solr/CommonQueryParameters#sort

我原來的模式是(可以考慮以下是一組-BY): -

  • 產品(編號,唯一) 個
    • 用戶誰提出一些意見(多值)
    • last_comment_date爲每個用戶(多值,一個用戶可以進行多次評論,但只有最後評論日期被捕獲)

如果選上multiValued是允許的,
我可以很容易地獲得某些用戶評論的產品列表,
然後按last_activity_date排序。

但是,它不起作用。
解決方法我目前是扭轉模式,以: -

  • 用戶+產物(如ID,唯一的)
  • 用戶(單值)
  • last_comment_date
  • 產品

這意味着我(有點)設法得到某些用戶評論的產品列表,
order by last_comment_date,
當然它導致重複產品
作爲產品將出現在每個用戶的評論。

任何建議模擬分組效果。

之間,我用solr 3.1。
字段崩潰不適用。

回答

5

通過多值字段進行排序不僅僅是正在執行或可以修補的內容。

它不可能完成,因爲它根本沒有任何意義。

要做到這一點的方法是每個文檔都有一個單值字段(在索引時填入最後一個日期),然後對其進行排序。即當索引遍歷具有上次活動日期的用戶列表時,查找最新日期並將其分配給文檔的最後活動日期字段。

相關問題