web-dev-qa-db-ja.com

SOLRで日付で並べ替える方法

SOLR検索から返された結果とスコアを並べ替えたいのですが、以下のように日付に基づいてスコアを取得する方法を教えてください。

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

私のsolr日付は以下のようにlisを提出しました:

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

私はこれをチェックした docs が、それを見つけることができなかった。

ありがとう。

14
user1289853

sort パラメータをURLに渡すことができます

例えばsort=published_date desc公開日の降順のドキュメント。

スコアと日付で並べ替える場合は、sort=score desc, published_date desc

32
Jayendra

the wiki から取得

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. 

それを this と組み合わせると、仕事が完了します:)とても簡単です、最初にいくつかの試行が必要です

少し編集:このメソッドを使用すると、日付範囲に基づいて値を取得し、その値に応じてスコアブーストを適用できます。どうやらあなたはベーススコアと日付でソートを取得する方法について助けを求めていたので、私の答えは100%正しいものではありません

1