我有一个使用 Sunspot 访问 Solr 的 RoR 应用程序。所有最新版本。
我的索引文档有一个散列,其中键是 user_id,值是用户第一次看到文档的时间。
如何按用户的日期值对搜索结果进行排序?由于涉及的数据量,我希望在 Solr 而不是在 RoR 中完成这项工作 - 提取所有结果只是为了在 RoR 中进行排序不会很漂亮。
这在 Solr 中是否可以实现?如果是这样,太阳黑子也能处理吗?
我有一个使用 Sunspot 访问 Solr 的 RoR 应用程序。所有最新版本。
我的索引文档有一个散列,其中键是 user_id,值是用户第一次看到文档的时间。
如何按用户的日期值对搜索结果进行排序?由于涉及的数据量,我希望在 Solr 而不是在 RoR 中完成这项工作 - 提取所有结果只是为了在 RoR 中进行排序不会很漂亮。
这在 Solr 中是否可以实现?如果是这样,太阳黑子也能处理吗?
在 Solr REST API 中,要按时间字段排序,您只需添加一个sort
查询参数。例如,如果您想按用户 ID 的 1、2 和 3 访问文档的时间排序,您可以发出类似
http://localhost:8983/solr/CORE/select?q=user_id:(1 OR 2 OR 3)&sort=timefield desc
solr 的查询。
我不知道太阳黑子或红宝石,但看看http://sunspot.github.com/上的搜索示例,我想你可以做某事。像这样?
Post.search do
user_id '1 OR 2 OR 3'
order_by :timefield, :desc
end