2012-11-23 40 views
2

我正在尝试使用docThinkingSphinx整合到我的项目中。对于User模型属性first_namelast_name我已经创建的索引为:ThinkingSphinx错误:这样的筛选器属性

User.rb

define_index do 
    indexes :first_name 
    indexes :last_name 
end 

然后我运行命令:

rake ts:index 
rake ts:start 

这将启动我的搜索。我得到的结果时,我用下面的命令来搜索:

User.search('swati') 

但是当我运行

User.search :with => {:first_name => "swati"} 

它给我的错误:

Sphinx Sphinx Daemon returned error: index user_core: no such filter attribute 'first_name' 
Sphinx Caught Sphinx exception: index user_core: no such filter attribute 'first_name' (0 tries left) 
ThinkingSphinx::SphinxError: index user_core: no such filter attribute 'first_name' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/thinking-sphinx-2.0.13/lib/thinking_sphinx/search.rb:438:in `block in populate' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/thinking-sphinx-2.0.13/lib/thinking_sphinx/search.rb:606:in `call' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/thinking-sphinx-2.0.13/lib/thinking_sphinx/search.rb:606:in `retry_on_stale_index' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/thinking-sphinx-2.0.13/lib/thinking_sphinx/search.rb:426:in `populate' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/thinking-sphinx-2.0.13/lib/thinking_sphinx/search.rb:187:in `method_missing' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start' 
from /home/swati/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

我搜索了一个可能的解决方案在计算器上,它已被要求运行命令rake ts:indexrake ts:rebuild。我已经运行这个命令,但它并没有帮助我。

请帮我找出解决方案。

非常感谢。

回答

3

要小心,rake ts:reindexrake ts:rebuild是不同的。

如果添加新索引,则需要重新编译。

如果你像我一样偏执,尝试一切:

rake ts:rebuild 
rake ts:reindex 
rake ts:restart 

如果还是不行,请确保您的索引是defined properly