在将日期字段存储到 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 代码。