使用acts_as_solr按日期排序

时间:2010-01-26 18:13:59

标签: ruby-on-rails ruby search sorting solr

我已经使用acts_as_solr为我的rails应用程序对文本字段进行排序,如下面的标题所示。

我在日期工作时遇到了问题。

我的模型有以下

class Article < ActiveRecord::Base

acts_as_solr :fields[:title, {:title_s=> :string}, {:created_at_d => :date}]

def title_s
  self.title
end

def created_at_d
  self.created_at
end

以下内容将发送到solr服务器:

path=/select params={wt=ruby&rows=10start=0&sort=created_at_d_d+asc&fl=pk_i,score&q=(+searchtext)..........

solr代码

Article.paginate_all_by_solr(searchString, :order=> "created_at_d asc", :page = page, :per_page => results_per_page, :total_entrieds => count)

有什么明显我做错了吗?我不确定{:created_at_d =&gt;模型中的:date}是设置日期索引的正确方法。

当我刚刚将它从:created_at中删除时,我得到了标记字段周围的错误,类似于我尝试排序时的错误:title。

1 个答案:

答案 0 :(得分:1)

索引有问题。

当我进入脚本/控制台并运行

Article.rebuild_solr_index

它没有正确地为日期编制索引。

我使用以下网站创建了一个rake任务。 http://henrik.nyh.se/2007/06/rake-task-to-reindex-models-for-acts_as_solr

我跑的时候

>rake solr:reindex

索引已正确创建,日期排序开始有效。