2014-02-26 114 views
0

我有以下幾個問題,我有示範城市(姓名,UF,省)'米試圖實現太陽黑子研究的方法,但我通過獲取:搜索和Solr的太陽黑子

# modelCity.rb 
searchable do 
    text :name 
end 

# controller City 
unless params[:search] 
    @cities = City.paginate(:page => params[:page], :order => "name ASC") 
else 
    @search = City.search do 
    fulltext params[:search] 
    end 
    @cities = @search.results 
end 

城市數據庫:

1 Medianeira PR 3 
2 Cascavel PR 4 
3 Cascavemat PR 3 

如果我輸入例如「卡斯卡韋爾」他帶來了一定的任務,但如果我輸入「卡斯卡」我希望他把所有具有相關的那些名稱的詞相關的城市。任何人都知道如何做到這一點?

OBS:使用Rails 4,跟着教程:git sunspot

回答

0

您需要在Solr的schema.xml配置此計算的N-克爲您的文本字段。這裏有一個可能的例子:

<fieldType name="text" class="solr.TextField" omitNorms="false"> 
    <analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StandardFilterFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="15"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StandardFilterFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

Solr Wiki有很多細節,我通常最終會搜索到「Solr中的x」或「爲什麼要solr y」。幸運的是,我們有很多聰明的人在那裏使用Solr。

+0

我跟着這個教程https://github.com/outoftime/sunspot,未創建Schema.xml文件 –

+0

它應該是'/ Solr的/ conf'。更改後您需要重新啓動solr和reindex。 – mikeryz

+0

由於它的工作,還有一個問題,如果我想搜索的名稱,我省還?我試圖添加模型「integer province_id」不起作用。 –