【问题标题】:Solr+Sunspot: Having different boost on tags of a record -- possible?Solr+Sunspot:对唱片的标签有不同的提升——可能吗?
【发布时间】:2013-01-18 16:35:10
【问题描述】:

我有一个模型,比如 Post。它有标签。每个标签都有一个应该反映在搜索中的权重。 我可以以某种方式存储这些标签并增加它们的权重吗?

例子:

帖子标题是“在外面吃饭” 标签是“汉堡”(重量 5)、“披萨”(重量 4)和“寿司”(重量 2)。 当有人搜索“burgers”时,这应该考虑额外的提升,并将其显示在带有标签“burgers”且 weight=2 的帖子上方。

我想到的第一个解决方案是有 5 个文本字段,提升 1-5,其中将包含每个帖子的标签。有没有更优雅的解决方案?

【问题讨论】:

    标签: solr sunspot sunspot-rails


    【解决方案1】:

    没有很好的开箱即用支持。然而,最近的匹配似乎是payloads。看看关于它的(旧的)文章here,但也有a more recent one。这两个都使用自定义相似度,这是一个相当高级的话题。幸运的是,从 Solr 4 开始,有一种方法可以定义 per-field similarity,因此最终的代码可能比这些示例中的任何一个都简单。

    如果你明白这一点,请与世界其他地方分享这篇文章(例如SearchHub)。我认为还没有人将这些部分与完全更新的 Solr 堆栈组合在一起。

    【讨论】:

    • 感谢您指出有效载荷。当我使用 Sunspot 时,我不确定是否有支持。无论如何,就目前而言,我最终得到了 3 个额外的字段(提升了 10、20、30),并且我将每个标签放在了正确的存储桶中。看起来效果不错。
    • 无论您使用什么客户端都可以。所有这一切都发生在 Solr 服务器端。但很高兴听到它以某种方式解决了。
    • 这里是太阳黑子的作者。 Alexandre 关于基于术语的提升的有效载荷的回答是正确的。您正在考虑的场增强设计可能是目前解决此问题的更实用的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    相关资源
    最近更新 更多