0

このクエリを pg_search の Google グループに投稿しました:

https://groups.google.com/forum/?fromgroups#!topic/casecommons-dev/3tbCthkDHg0

しかし、応答がないので、ここ StackOverflow に投稿します。私の質問は、次の状況で pg_search gem を使用する場合、GIN タイプのインデックスを作成する必要がありますか?

私の検索は、単一のモデル内の検索に pg_search_scope を使用することに制限されています。

以下に具体例を示します。

class Scenario < ActiveRecord::Base
   ...
   include PgSearch
  pg_search_scope :search, :against => [:name, :compute_ngls],
   :using => { :tsearch => {:dictionary => "english"} }


   def self.text_search(query)
     if query.present?
       search(sanitize(query))
     else
       scoped
     end
   end
  ...
end

text_search メソッドの呼び出しは次のとおりです。

  scenarios = scenarios.text_search(params[:sSearch])

たとえば、:name など、特定の列に通常の btree インデックスしかありません。gin または gist インデックスがありません。私の質問は、これらのインデックスを明示的に作成する必要がありますか? はいの場合、どの種類のどの列ですか? これらのインデックスを作成するための構文を教えてください。

4

1 に答える 1