Если только это
объект с вхождением подстроки в наименование, например
- Postgres + GiN/GiST индекс на поле наименования gin_trgm_ops (gist_trgm_ops). Создаётся так:
create index title_idx on your_table using gin(title gin_trgm_ops);
Разница gin/gist в двух словах:
По gin быстрее искать, но дольше создавать, gist наоборот.
Если что-то больше (не только по одному полю, ранжирование) - Full Text Search. Тут выбор за тобой. Sphinx, ElasticSearch, Postgres, MongoDB.