2012-04-25 56 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