Вы, надеюсь, про FTS в PostgreSQL? Тогда, скорее всего ответ содержится тут
https://www.postgresql.org/docs/9.5/static/textsea...
Создание индекса
UPDATE table SET ftsindex =
setweight(to_tsvector(coalesce(subject,'')), 'A') ||
setweight(to_tsvector(coalesce(message,'')), 'D');
При создания индекса разным полям можно назначить условный вес, от A до D.
При запросе, условному весу можно указать реальный
SELECT id, ts_rank_cd({1.0, 1.0, 1.0, 3.0}, ftsindex, query) AS rank
FROM table, to_tsquery('this is a test') query
WHERE query @@ ftsindex
ORDER BY rank DESC
LIMIT 10;