2014-12-01 85 views
0

排除关键字,我有以下的配置设置在Solr的搜索...的Rails太阳黑子在现场

控制器

users = users.search do 
       without(:name, 'admin') 
       with(:retired, false) 
       fulltext(params[:q]) 
       paginate :page => 1, :per_page => 5 
       end 
@users = users.results 

模型

searchable do 
    text :name 
    boolean :retired 
    end 

我试图排除用户谁'name'字段中的任何地方都有'admin'。我得到的错误:

No field configured for Learner with name 'name'

想法?

名称字段是有效的,如果我删除'无'行它的工作没有问题。

+0

上这只是一个更新排除“管理员”的名称。我正在解释'未定义为文本的字段(例如,整数,布尔值,时间等等)可用于在执行全文匹配前对查询进行范围(限制).'在https://github.com/上太阳黑子/太阳黑子意味着'没有'不能用于文本字段。 – Lumbee 2014-12-02 14:33:38

回答

0

你可以尝试在搜索块

searchable do 
    text(:name) { |n| n.name != 'admin' } 
end 
+0

感谢您的建议亚历克斯,但这似乎并不奏效。如果我用'text(:name){| n |'替换'text:name',我不会得到任何结果n.name!='admin'}' – Lumbee 2014-12-02 13:40:33

+0

尝试再添加一个条件 text(:name){| n | n.name如果n.name!='admin'} – AlexMrKlim 2014-12-02 15:19:53

+0

是的,试过了。相同的结果。 – Lumbee 2014-12-02 15:43:46