Пълнотекстовото търсене на 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));