2012-05-31 63 views
0

我正在使用Sunspot進行全文搜索,但是它不起作用。當我刪除'with'查詢和搜索時,它可以工作,但是當我添加查詢時沒有。我查看過文檔,它應該結構正確,有什麼想法?太陽黑子範圍內的查詢不起作用

名稱和類別都是Items表中的字符串。作爲一個純粹的骨頭嘗試,我一直試圖通過空搜索來獲取「電子」項目,通常會導致所有項目不顯示查詢。

型號

searchable do 
    text :name, :category 
    string :category 
end 

控制器

def search 
    @search = Item.search do 
    fulltext (params[:search]) 
    with(:category, 'electronics') 
    end 

    @items = @search.results 

    respond_to do |format| 
    format.html 
    format.js 
    end 
end 

非常感謝您的幫助!

+0

您是否已將'reindex'ed您的模型並致力於Sunspot?如果你沒有文字搜索,但用「with」搜索? – lulalala

回答

1

您已將字段定義爲文本和字符串。 它從你的控制器代碼中看出你想用它作爲一個字符串。 修改您的:category聲明後,問題是否消失?

順便說一下,在這裏做什麼名字 - 當然,名稱必須是字符串。你的模型中有文本字段嗎?這裏的文本意味着大量的文本,可能有數百個字符,如果不是數千個字符。

+0

我最初定義:類作爲一個字符串,但我得到一個錯誤,當我把它設置爲文本我沒有。設置爲兩者都是我收到的建議,我沒有收到錯誤,但過濾仍然無效。是的,名字是一個字符串,但由於某種原因,我不能用字符串進行全文搜索,儘管它的文本有效。我決定將類別更改爲整數,當我按數字搜索時,它起作用,但我不相信這是最好的方式。 – ahuang7

1

我遇到了這個問題,其中我的with過濾器導致沒有結果。

重新啓動Rails/Solr,然後運行rake sunspot:reindex爲我修復它。

我嘗試了幾次運行rake sunspot:reindex(但感到沮喪),但是直到我重新啓動Solr並重新編制索引時才運行。

我猜這是因爲我通過Foreman Procfile啓動了太陽黑子,而且與Solr綁定的Rails實例在更改它們時不會重新加載模型類。 (類似於它如何對待worker進程...您必須重新啓動Rails才能讓Foreman接受作業代碼的更改。)

+0

卓越這對我有用 –