2013-02-08 27 views
0

我有一个RoR应用程序使用太阳黑子来访问Solr。所有最新版本。使用Solr /太阳黑子排序哈希值

我的索引文档有一个散列,其中的键是user_id,值是用户第一次看到文档的时间。

如何根据用户的日期值对搜索结果进行排序?我希望这是在Solr而不是在RoR中完成的,因为所涉及的数据量很大 - 拉入所有结果只是为了在RoR中进行排序并不会很好。

这可能是Solr本地的吗?如果是这样,那么太阳黑子队也可以处理它吗?

回答

0

在Solr REST API中,按时间字段进行排序,您只需添加一个sort查询参数。例如,如果要在访问文档时对user_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 
+0

问题是,每个用户都有自己的访问时间,我需要按照该值对特定用户进行排序。我不明白这个解决方案如何处理我的要求。 – Eric 2013-02-08 22:03:25

+0

我不知道你实际上可以将散列存储为solr文档中的字段。我以为你只能存储简单的类型,如int,float,string,text和多值域?我误解了你的qn。我很好奇,你能告诉你如何在文档中存储散列吗? – arun 2013-02-08 23:48:09

+0

我认为你是对的。任何想法如何基于每个文档中的每个用户属性对每个用户进行不同的排序? – Eric 2013-02-09 21:39:08