18

我想对 SOLR 搜索返回的结果和分数进行排序,如何根据日期获得分数,如下所示:

Suppose for keywords "football"
  12-10-2012 - 3.2
  13-10-2012 - 1.5

我提交的 solr 日期如下所示:

  <field name="published_date" datetimeformat="dd-MM-yyyy"  type="date" indexed="true" stored="true"/>

我检查了这个文档,但找不到。

谢谢。

4

2 回答 2

40

您可以在 URL中传递排序参数

例如sort=published_date desc,对于按发布日期降序排列的文档。

如果要按分数和日期排序,可以使用sort=score desc, published_date desc

于 2012-10-19T09:00:38.767 回答
1

取自维基

Although not technically a Syntax difference, please note that if you use 
the Solr "DateField" type, any queries on those fields (typically range queries) 
should use either the Complete ISO 8601 Date syntax that field supports, 
or the DateMath Syntax to get
relative dates. Examples:

timestamp:[* TO NOW]

createdate:[1976-03-06T23:59:59.999Z TO *]

createdate:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]

pubdate:[NOW-1YEAR/DAY TO NOW/DAY+1DAY]

createdate:[1976-03-06T23:59:59.999Z TO 1976-03-06T23:59:59.999Z+1YEAR]

createdate:[1976-03-06T23:59:59.999Z/YEAR TO 1976-03-06T23:59:59.999Z] 

NOTE:TO must be uppercase, or Solr will report a 'Range Goop' error. 

把它和这个结合起来,工作就完成了:)这很容易,它只需要在开始时进行一些尝试

稍作修改:此方法允许您根据日期范围检索值并根据它们的值对它们应用分数提升。显然你在询问如何根据基本分数和日期检索排序,所以我的答案不是 100% 正确的

于 2012-10-19T08:59:05.630 回答