0

日付フィールドをSOLRに保存するときに、 Date() を toISOString() に変換すると、受け入れられます。toUTCStringで保存しようとしたのですが、うまくいきません。

検索中に、日付に基づいて並べ替えていますが、結果は得られますが、これらは降順ではなく、混合した順序で並べ替えられています。

[NOW-1YEAR/DAY TO NOW/DAY+1DAY]で範囲を指定してみましたが、結果は同じです。最初に 6 日前のドキュメント、次に 30 分前のドキュメント、次に 2 か月前のドキュメントを取得します。

正しいアプローチは何ですか?

編集: schema.xml に追加した日付フィールドは次のとおりです。

   <field name="message_date" type="date" indexed="true" stored="false" />

これがパラメータです。各検索中に送信しています。

query = "*:*";
var options = {
            fq: '{!geofilt}',
            sfield: 'location',
            pt: latitude+','+longitude,
            d: 10,
            sort: ["message_date desc", "geodist() asc"],
            start: 0,
            rows: 10
        }

solrclient.query(query, options, function(err, solrRes){
....
});

これは、サーバー側の javascript、node.js コードです。

4

1 に答える 1

0

上記のコードは問題なく、動作しています。問題は、SOLR から結果を取得した後、データベースでより詳細な検索を行って詳細を取得したところ、ソートされなかったことです。そのため、SOLR から結果を取得した後、Mongodb からの結果をソートすると、うまくいきました。

nodejs と solr モジュールの使用は、https://github.com/gsf/node-solrです。

于 2012-07-05T04:02:41.573 に答える