Wyszukiwanie pełnotekstowe Postgres różni się nieco od wyszukiwania pełnotekstowego MySQL. Ma o wiele więcej opcji, ale może być nieco trudniej pracować tak, jak lubisz.
W tym dokumencie dowiesz się, jak uszeregować wyniki wyszukiwania, ale zdecydowanie zalecamy przeczytanie całego pełnego tekstu sekcji podręcznika, aby dowiedzieć się, co możesz z nim zrobić:http://www.postgresql.org/docs/current/interactive/textsearch-controls.html#TEXTSEARCH-RANKING
Zasadniczo odpowiednik twojego zapytania będzie następujący:
SELECT pictures.id, ts_rank_cd(textsearch, 'phrase') AS score
FROM pictures
ORDER BY score DESC
Jak widać, używa to textsearch
co musisz zdefiniować. Aby zapoznać się z krótką wersją, przeczytaj:http://www.postgresql. org/docs/current/interactive/textsearch-tables.html
Zapytanie jest zasadniczo bardzo proste:
SELECT pictures.id, ts_rank_cd(to_tsvector('english', pictures.title), 'phrase') AS score
FROM pictures
ORDER BY score DESC
Ale zdecydowanie polecam również dodanie indeksów:
CREATE INDEX pictures_title ON pictures USING gin(to_tsvector('english', title));