RailsPostgresqlを使用しておりカラムに配列をもたせようとしたところRailsガイドの解説ではインデックスの方式にginという物が使われていました。

create_table :books do |t|
  t.string 'title'
  t.string 'tags', array: true
  t.integer 'ratings', array: true
end
add_index :books, :tags, using: 'gin'
add_index :books, :ratings, using: 'gin'

https://edgeguides.rubyonrails.org/active_record_postgresql.html#array

検索してみてもそういうインデックス形式があるとわかるだけで具体的にどのような特徴を持つアルゴリズムかわかりませんでした。

カラムに配列を使う時は必ずginを指定すべきなのでしょうか?
またginがどのような条件で最適の選択肢になるかが知りたいです。