在将日期字段存储到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代码。
答案 0 :(得分:0)
上面的代码很好,它正在运行。问题是,从SOLR中检索结果后,我在我的数据库中进行了更精细的搜索,以获取更多详细信息,但未进行排序。 因此,在从SOLR中检索结果后,对Mongodb的结果进行了排序,并且结果很有效。
使用nodejs和solr模块是https://github.com/gsf/node-solr