我遇到一些Thinking Sphinx的问题,我不允许我在数据库中的deleted_at
列进行搜索。
基本上,我希望获得所有用户,活动用户和已删除用户的列表,然后能够取消删除管理员定义的某些用户。不幸的是,我甚至无法在使用Thinking Sphinx时列出已删除的用户。当我定期搜索“删除_不是空”的所有用户时,我可以获得用户。
我可以在索引中做任何其他字段,但不是deleted_at
。每一次,我都明白了:
ERROR -- : index user_core: no such filter attribute 'deleted_at' (ThinkingSphinx::SphinxError)
这是我的索引文件:
ThinkingSphinx::Index.define :user, :with => :active_record, :delta => true do
indexes first_name, :sortable => true
indexes last_name, :sortable => true
indexes email, :sortable => true
indexes phone, :sortable => true
has deleted_at, :as => :deleted
has id, :as => :user_id
has roles(:id), :as => :role_ids
set_property :delta => true
end
我的疑问:
params[:with][:deleted_at] = 0
@results = User.search :conditions => params[:conditions], :with => params[:with],
:order => params[:sort] + ' ' + params[:sort_mode], :page => params[:page],
:per_page => params[:per_page], :star => true
注意:即使我只做@results = User.search
,我仍然只能获得deleted_at
为空的所有活跃用户的列表。在使用Thinking Sphinx时,我似乎无法获得所有用户。