【问题标题】:How can I sort the SOLR search result by every 60 days time range?如何按每 60 天的时间范围对 SOLR 搜索结果进行排序?
【发布时间】:2013-02-05 18:50:57
【问题描述】:

我喜欢 solr 搜索结果,它根据年龄按以下顺序排序,按每 60 天的范围分组:

  • {0 ~ 59 天,随机分组}
  • {60 ~ 119 天,随机 }
  • {120 ~ 179 天,随机 }
  • ...

在我们的文档中,我们有一个名为 publishDate 的字段,其 fieldType 为“date”。我在想我是否可以使用排序功能来做到这一点(只是一些伪代码):

sort=((Today - publishDate) / 60 ) asc, rand_## desc, score desc

另外,如果可行,是否仅在当前 SOLR 版本中支持? 3.x 还是 4? 提前致谢。

【问题讨论】:

    标签: sorting search solr range


    【解决方案1】:

    正如您在上面提到的 Function QueriesRandomSort 字段,这应该是可行的,并且支持 3.x 和 4.0

    您可以检查 subdivms 函数来执行减法、除法和毫秒以达到日期范围值并对其进行排序。
    使用 RandomSort 字段作为辅助排序来随机化它。

    【讨论】:

    • 谢谢 Jayendra,我用你暗示的函数试了一下 sort=div(sub(ms(publishDate),ms(NOW)),product(86400000,60)) desc,random_123 desc
    • 是的,效果很好。抱歉,我发现我之前给您的消息被截断了。只是想再次感谢你。
    • 正确:sort=floor(div(sub(ms(NOW),ms(publishDate)),product(86400000,60))) asc,random_123 desc
    猜你喜欢
    • 2016-01-09
    • 2012-09-19
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2018-09-08
    相关资源
    最近更新 更多