自定义Solr排序

问题描述:

我被要求对Solr做一个评估,作为商业搜索引擎的替代品。自定义Solr排序

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

我会试着用了一下的细节来说明:

在接口方面,他们有2个字段:“什么”和“在哪里”。

这两个字段实际上是一组字段(什么=类别,名称,联系信息...和哪里=国家,州,地区,城市......),所以立即想到Solr的复制字段功能。现在基于生成实际匹配的字段,结果应该在特定的桶中结束。特别是第一个桶包含所有结果文档,这些文档在类别字段上具有精确匹配,第二个桶中包含名称上的所有精确匹配,第三个部分匹配,第四个部分匹配,第五个匹配联系信息等等......然后,在每个第一级桶中,所有结果都放在第二级桶中,具体取决于匹配的位置:城市,地区,省份等等。为了使事情更加复杂化,还有一个第三层存储桶,根据排名字段的值放置结果:排名字段中值为1的所有文档都放入存储桶1中,依此类推。最后结果应该是在第三级存储桶中随机化...

除此之外,他们显然希望支持facet和paging。

我对很长的邮件表示歉意,但我将不胜感激反馈意见和/或建议。

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

干杯, 汤姆

+0

我不明白在这样的结构中facet和分页如何有意义。 – 2010-05-31 14:50:45

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

例如,您可以对比词组匹配更高级的词组匹配,对某些字段赋予更高的权重等。您甚至可以编写自己的自定义代码并将其插入相当简单。

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