2013-01-21 87 views
1

比方說,我有一個模型定義如下(標題和描述字符串和文本字段,分別):太陽黑子派出查詢

class Entity < ActiveRecord::Base 
    # Skipped 

    searchable do 
    text :title, 
    text :description 
    end 
end 

我希望能夠使用搜索查詢,如「標題:FOO說明:bar「,它假設只檢索那些符合搜索標準的實體,即標題包含」foo「和/或描述包含」bar「的實體。精確的語法無關緊要。

我想在我的演示應用程序的搜索字段中鍵入這樣的查詢,但顯然它沒有:-)

所以返回任何結果,確實太陽黑子查詢分析器支持派出查詢(不知道這個詞是否正確)?

謝謝。

回答

2

這是Solr的edismax查詢解析器應該支持的功能。然而,太陽黑子目前默認爲較舊的dismax查詢分析器。

爲了使edismax在搜索中,嘗試在search塊這一行:

adjust_solr_params { |p| p[:defType] = 'edismax' } 

(這是從我的頭頂,讓我知道如果我錯過了語法)。

+0

謝謝, 我會試試看。 – nameless

+0

這個答案適用於我,除了我不得不使用「title_text(term)」而不是「title(term)」。有沒有辦法解決這個問題? –

+1

嘿唐,太陽黑子的「可搜索」DSL是關於將模型的列映射到Lucene字段的命名方案的。它的'text:title'只是產生一個名爲'title_text'的字段。在這一點上閱讀太陽黑子的schema.xml應該是非常有教育意義的。 –