Проведение полнотекстового исследования и ограничение записей, возвращаемых номером ранга

в Postgresql 10 я выполняю полнотекстовый поиск и не хочу получать записи, когда rank меньше предопределенного числа.

 SELECT i.id, i.slug, i.name, i.short_description,
    ts_rank(
        setweight(to_tsvector(COALESCE(i.name, '')), 'A') || 
        setweight(to_tsvector(COALESCE(i.short_description, '')), 'B') || 
        setweight(to_tsvector(COALESCE(i.description, '')), 'B') || 
        setweight(to_tsvector(COALESCE(o.name, '')), 'C') || 
        setweight(to_tsvector(COALESCE(o.short_description, '')), 'D'),
    plainto_tsquery('balenare')) AS rank 
    FROM items_item AS i INNER JOIN owners_owner AS o 
    ON i.owner_id = o.id 
    WHERE i.is_active = true AND rank > 10000
    ORDER BY rank DESC

Я получаю сообщение об ошибке, потому что я добавил условие rank > 10000

ОШИБКА: столбец "ранг" не существует

что верно, но я все же хочу использовать ранг как ограничение


person user3541631    schedule 26.03.2019    source источник
comment
Решение здесь: stackoverflow.com/questions/8370114/   -  person Cristian    schedule 26.03.2019
comment
Или просто оберните запрос без части WHERE rank в другой SELECT, который применяет ранговую фильтрацию и упорядочение.   -  person 404    schedule 26.03.2019