2014-12-01 104 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