【问题标题】:Custom Solr sorting自定义 Solr 排序
【发布时间】:2010-05-31 07:47:35
【问题描述】:

我被要求对 Solr 作为商业搜索引擎的替代品进行评估。

应用程序现在有一种非常特殊的方式来使用称为“桶”的东西对结果进行排序。

我会尝试用一些细节来解释:

在界面中,它们有 2 个字段:“what”和“where”。

这两个字段实际上都是一组字段(what = 类别、姓名、联系信息...而 where= 国家、州、地区、城市...),因此 Solr 的复制字段功能立即浮现在脑海中。现在根据生成的实际匹配字段,结果应该最终出现在特定的存储桶中。特别是第一个存储桶包含与类别字段完全匹配的所有结果文档,在第二个存储桶中,所有名称完全匹配,第三个部分匹配类别,第四个部分匹配名称,第五个匹配联系信息等等......然后在每个第一层存储桶中,所有结果都根据匹配的位置放置在第二层存储桶中:城市、地区、省份等等。更复杂的是,还有一个第三层桶,其中根据排名字段的值放置结果:排名字段中值为 1 的所有文档都放在桶 1 中,依此类推。最后结果应该在第三层桶中随机化...

除此之外,他们显然希望支持构面和分页。

对于这封长邮件,我深表歉意,但我非常感谢您提供反馈和/或建议。

我知道这是一个非常特殊的问题,但所有为我指明正确方向的事情都是有帮助的。

干杯, 汤姆

【问题讨论】:

  • 我看不出分面和分页在这样的结构中有何意义。

标签: lucene solr buckets


【解决方案1】:

听起来应用程序正在使用这种复杂的排序算法作为相关性的代理。 Solr 使用评分来进行这种类型的排序,并为您提供了许多控制评分方程的方法。

例如,您可以将词组匹配排名高于关键字匹配,赋予某些字段更高的权重等。您甚至可以编写自己的自定义代码并相当容易地将其插入。

您可能无法使用这种方法复制当前应用程序的确切顺序,但这不一定是坏事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2014-07-18
    相关资源
    最近更新 更多