2012-06-04 96 views

回答

1

好的找到了答案,所以我會在下面發帖。

我創建了一個名爲config/initializers/pg_search.rb文件,它看起來像:

PgSearch.multisearch_options = { :using => { :tsearch => { :prefix => true }, 
              :trigram => {}, 
              :dmetaphone => {} }, 
           :ignoring => :accents } 

我不完全理解爲什麼:trigram => {}作品,而不僅僅是:trigram,但我想這應該是在另一篇文章。

+0

因爲在一個散列,你不能定義一個沒有值的鍵,即使這個值是空的 –

6

我有關於如何實現PgSearch.multisearch_options的類似問題。

這是爲我工作。希望它能幫助別人。

我創建初始化config/initializers/pg_search.rb

PgSearch.multisearch_options = { 
    :using => { 
    :tsearch => { 
     :dictionary => "english" 
    } 
    } 
} 

在我application.rb文件我註釋掉這一行:config.active_record.schema_format = :sql

然後創建一個遷移稱爲rails g migration add_trigram_extension添加下面的遷移文件

def up 
    execute "create extension pg_trgm" 
end 

def down 
    execute "drop extension pg_trgm" 
end 

然後運行bundle exec rake db:migrate

重新啓動服務器

現在使用Stemming進行全文搜索正在工作。

p.s.這個工作使用(PostgreSQL)9.1.4

相關問題