太阳黑子:如何实现搜索结果层次结构?

时间:2012-03-19 18:22:09

标签: mysql ruby-on-rails ruby solr sunspot

我目前正致力于在Rails项目中通过Sunspot实现Solr。

查看文档我不知道如何实现搜索结果的层次结构,我的意思是:

  • 与查询匹配的所有用户&有个人资料图片应该是 首先显示。

  • 与查询匹配的所有用户&不要有个人资料图片 显示在下面。

  • 依旧......

我很感激有关如何实施这样一个系统的任何指导或参考。

2 个答案:

答案 0 :(得分:0)

如果您想首先显示带有个人资料图片的用户,而不想显示以后没有的用户 -
您可以使用sortMissingLast排序,这将导致所有没有任何值的记录最后出现。
else具有默认值,用于没有值的记录,以便它们在排序时显示在最后。

答案 1 :(得分:0)

多年来,我多次听到这个请求,但它并不像人们期望的那样有效。最糟糕的情况是非常糟糕且很常见。

您可能不想这样做。只要包含一个常用术语,例如“Jr”,就必须在没有图片的第一个配置文件之前显示数千个带有图片的结果,即使这个结果是正确的结果。

这种情况会比您预期的更频繁发生,因为常见名称很常见,因此它们会在查询中显示很多并与大量文档匹配。这可能发生在您最常见的查询中。糟糕。

相反,通过品质因素提升结果。如果有两个“Joe Smith”配置文件,带有图片的配置文件更好,应首先显示。您可以使用edismax结果处理程序的“boost”参数执行此操作。如果个人资料中有照片,请使用2的增强,否则增加1。您可能需要使用确切的值来获得所需的照片。