Полнотекстовый поиск Postgres немного отличается от полнотекстового поиска MySQL.У него гораздо больше опций, но может быть немного сложнее заставить работать так, как вам нравится.
В этом документе рассказывается о том, как ранжировать результаты поиска, но я настоятельно рекомендую вам прочитать весь текстовый раздел изруководство, чтобы получить представление о том, что вы можете с ним сделать: http://www.postgresql.org/docs/current/interactive/textsearch-controls.html#TEXTSEARCH-RANKING
В основном, эквивалент вашего запроса будет следующим:
SELECT pictures.id, ts_rank_cd(textsearch, 'phrase') AS score
FROM pictures
ORDER BY score DESC
Как вы можете видеть, это используетtextsearch
это то, что вы должны будете определить сами.Для краткой версии читайте: http://www.postgresql.org/docs/current/interactive/textsearch-tables.html
Запрос по сути очень прост:
SELECT pictures.id, ts_rank_cd(to_tsvector('english', pictures.title), 'phrase') AS score
FROM pictures
ORDER BY score DESC
Но я бы настоятельно рекомендовал добавить индексы так же:
CREATE INDEX pictures_title ON pictures USING gin(to_tsvector('english', title));