вы ищете оценку для той же фразы в каждой строке to_tsvector('microposts.content')
, вместо этого вы должны использовать ts_rank(to_tsvector(content),query)
также, я полагаю, вы должны определить язык для точных результатов:
SELECT content, ts_rank(to_tsvector('latin',content), query)
AS rank FROM microposts, to_tsquery('latin','sit') query WHERE microposts.content @@ query
ORDER BY rank DESC LIMIT 10;
также я не уверен, является ли sit
стоп-словом, которое следует игнорировать вообще ...