2

直前に各モデルに配置しmultisearchable :against => [ ... ]ますか、それとも別のファイルに配置する必要がありますか?ありがとう。

4

2 に答える 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 に答える