このクエリを 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 インデックスがありません。私の質問は、これらのインデックスを明示的に作成する必要がありますか? はいの場合、どの種類のどの列ですか? これらのインデックスを作成するための構文を教えてください。