18

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"/>

このドキュメントを確認しましたが、見つかりませんでした。

ありがとう。

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 に答える