Many years I recommended to use subselects to avoid extra ts_headline() evaluation:
select ts_headline(body,to_tsquery('supernovae & x-ray')), rank from (
select body, ts_rank(fts,to_tsquery('supernovae & x-ray')) as rank
from apod
where fts @@ to_tsquery('supernovae & x-ray')
order by rank desc limit 5
) as foo;
But modern version of
(
Read more... )