1

solrで検索しようとしていますが、結果を最初に日付で並べ替えてから、名前フィールドで並べ替える必要があります。日付が次の形式であるため、期待どおりの結果を得ることができます2012-09-07T13:31:35Z

クエリは次のようになります。

sort=date+desc,name+desc

ソートも時間通りに行われたくありません。

4

2 に答える 2

1

あなたは例えばあなたの場合に日付に関数を使うことができます

sort=floor(div(ms(date),86400000))+desc,name+desc

これには、ワイルドカードのdynamicFieldが無視されるように設定されていない必要があることに注意してください。つまり、次の行はschema.xmlに存在しないようにする必要があります。存在する場合は、コメントアウトするか、上記のように並べ替える前に数値タイプを使用する必要があります。

<dynamicField name="*" type="ignored" multiValued="true" />
于 2012-10-11T12:42:47.333 に答える
0

別のオプションでは、日付部分のみを数値表現として保存することもできます(つまり、タイムスタンプ、過去のある日付から午前12時のドキュメントの日付までの秒数)。
uがタイムスタンプに関する一般的な標準に従っている場合、タイムスタンプから日付へ、またはその逆への保守、クエリ、および変換がかなり簡単である必要があります。

于 2012-10-11T12:46:30.170 に答える