Without help, the database has no way to know where a row is without looking at all of them. An index is that help — a separate structure that tells the database where to look instead of scanning every row.
Why ILIKE %query% doesn’t scale, how PostgreSQL’s tsvector, GIN, and tsquery turn plain text into a real lexical search engine, and when it’s a genuine Elasticsearch alternative.