Understanding full-text searches
If you’re looking up names or looking for simple strings, you’re usually querying the entire content of a field. With a full-text search, this is different. The purpose of the full-text search is to look for words or groups of words that can be found in a text. Therefore, a full-text search is more of a contains
operation as you’re never looking for an exact string.
In PostgreSQL, a full-text search can be done using GIN indexes. The idea is to dissect a piece of text, extract valuable lexeme (preprocessed tokens of words) strings, and index those elements rather than the underlying text. To make your search even more successful, those words are preprocessed.
Here’s an example:
test=# SELECT to_tsvector('english','A car, I want a car. I would not even mind having many cars'); ...