Tokenization ⇒ stop words removal ⇒ steaming (normalization) (return words to their origins) ⇒ indexing (inverted index)\
inverted indexing is about mapping each token to the document on which it exists
at first DBs only supported exact text matching, the added LIKE key word to make search more robust
SELECT * FROM Person WHERE Name LIKE '%ahmed%';% ⇒ means anything . ‘%ahmed%’ matches (any thing + ahmed + any thing)
LIKE has bad performance, case sensitive, words must have the same form
bad performance: When you use patterns LIKE '%value%', the database cannot use indexes effectively. This is because the wildcard % at the beginning forces the DB to check every row (a full table scan) instead of using a B-tree index
GIN ⇒ Generalized inverted index to_tsvector , to_tsquery