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 回答