通过多值字段中的匹配位置提高SOLR相关性

时间:2016-11-15 10:54:07

标签: solr

我使用的是SOLR 6.2.1,其核心是多值字段:

<field name="tag_ids" type="ints" required="false"  indexed="true"  stored="true"/>

它允许按标签ID搜索文档,例如查询tag_ids:12。我在此字段中有标记,按文档的标记相关性排序。我想按文档标签相关性排序。

示例 - 搜索查询tag_ids:12,文档:

[
{
   id: 1,
   tag_ids:[1298,43,12,89]
},
{
   id: 2,
   tag_ids:[12,574,1,4356]
},
{
   id: 3,
   tag_ids:[77,12,65]
}
]

希望查看订单2,3,1。

的文件

问题:是否可以按Apache SOLR中的多值字段匹配位置进行排序?可能是一些黑客或插件?

1 个答案:

答案 0 :(得分:2)

您需要做的是在索引时添加每个标记的权重信息,您的查询将按原样运行。

要为每个标记索引权重,您有以下几种方法:

  1. 尝试使用有效负载,here是旧版Solr的完整示例,here是另一个。您可能需要修改此样本,因为此后Solr apis已发生变化。
  2. 使用在每个标记中添加N次的知识黑客,在您的示例中看起来像:

    [ { id:1, tag_ids:[1298,1298,1298,1298,43,43,43,12,12,89] }, { id:2, tag_ids:[12,12,12,12,574,574,1,1,4356] }, { id:3, tag_ids:77,77,77,77,12,12,12,65,65] }]