我是否将其放在每个模型中,就在之前,multisearchable :against => [ ... ]
还是应该放在单独的文件中?谢谢。
问问题
855 次
2 回答
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 进行全文搜索正在工作。
ps这使用(PostgreSQL)9.1.4
于 2012-12-12T08:45:32.533 回答
1
好的,找到了答案,所以我会在下面发布。
我创建了一个名为的文件config/initializers/pg_search.rb
,如下所示:
PgSearch.multisearch_options = { :using => { :tsearch => { :prefix => true },
:trigram => {},
:dmetaphone => {} },
:ignoring => :accents }
我不完全理解为什么:trigram => {}
有效而不仅仅是:trigram
,但我想这应该在另一篇文章中。
于 2012-06-04T01:41:48.740 回答