GIN (Generalized Inverted Index) suits values that contain many parts, such as JSONB documents, arrays and text search vectors. A lookup finds the rows for each part and combines them; writes are more expensive than with a B-tree.