2012-04-25 87 views
0

我正在使用SOLR 1.4。在搜索索引中,我存儲產品和類別。每個產品可能有多個類別。類別應該會影響文檔的分數。SOLR 1.4 - 按標記排序

例如

Category 1 (flag 8) 
Category 2 (flag 4) 
Category 3 (flag 2) 
Category 4 (flag 1) 


Product A: Category 1 + Category 2 
Product B: Category 1 + Category 3 + Category 4 

在這種情況下,產品A應具有更高的得分比產品B: 8 + 4> 8 + 2 + 1

我怎樣才能在SOLR 1.4實現此?任何幫助將不勝感激!

+1

這比排序或相關性更重要。這是你唯一的要求嗎? – javanna 2012-04-25 13:19:39

+0

我同意@javanna。這聽起來像是一種奇怪的做法。我認爲如果您創建一個名爲「flag」的多值浮動字段是可能的,該字段包含與文檔標記的每個類別相關的「標誌」值。然後,您可以使用功能查詢以您想要的方式調整相關性模型。 (http://wiki.apache.org/solr/FunctionQuery) – 2012-04-25 15:14:30

+0

@MaxCharas''按功能排序'可以從版本3.1和我使用1.4 – 2012-04-26 08:42:38

回答

1

如果您不太在意相關性,就像您在評論中所說的那樣,我建議您使用排序並避免嘗試影響solr分數。您可以添加一個字段,其中包含與文檔類別相關的標誌總和,然後使用該字段進行排序。

正如您已經指出的那樣,您不能使用solr 1.4的函數進行排序,但有必要提一下,如果升級到3.x,則可以使用包含標誌列表的多值字段並通過函數計算總和,使用它for sorting

在這兩種情況下,對於具有相同標記總數和相同標題的文檔,您將查看solr分數,這對您並不重要。

+0

'按功能排序'在版本1.4中不可用 – 2012-04-26 14:28:53

+0

好點,對不起!更新我的答案。 – javanna 2012-04-26 14:38:07