Just use the `simple` text search configuration, which works with the [**`simple`** dictionary][1] and does not do any stemming: CREATE INDEX tbl USING GIN (to_tsvector('simple', data)); An query accordingly: SELECT * FROM tbl WHERE to_tsvector('simple', data) @@ to_tsquery('simple', 'foo'); Related: - https://dba.stackexchange.com/questions/157951/get-partial-match-from-gin-indexed-tsvector-column/157982#157982 - https://dba.stackexchange.com/questions/145016/finding-the-most-commonly-used-non-stop-words-in-a-column/186754#186754 - https://dba.stackexchange.com/questions/164000/postgresql-full-text-search-on-many-columns/164081#164081 [1]: https://www.postgresql.org/docs/current/textsearch-dictionaries.html#TEXTSEARCH-SIMPLE-DICTIONARY