SomeModel.objects.annotate(sim=TrigramSimilarity('title', q)).filter(sim__gt=0.05).order_by("-sim")
SELECT DISTINCT "catalog_catalogitem"."id", "catalog_catalogitem"."seo_title", "catalog_catalogitem"."seo_keywords", "catalog_catalogitem"."seo_description", "catalog_catalogitem"."updated",
"catalog_catalogitem"."created", "catalog_catalogitem"."status", "catalog_catalogitem"."sort", "catalog_catalogitem"."itm_code", "catalog_catalogitem"."city_id", "catalog_catalogitem"."firm_id",
"catalog_catalogitem"."group_id", "catalog_catalogitem"."subgroup_id", "catalog_catalogitem"."producer_country_id", "catalog_catalogitem"."title", "catalog_catalogitem"."unit", "catalog_catalogitem"."pack",
"catalog_catalogitem"."description", "catalog_catalogitem"."image", "catalog_catalogitem"."cost", "catalog_catalogitem"."currency", "catalog_catalogitem"."payment", "catalog_catalogitem"."sale",
"catalog_catalogitem"."manufacture", "catalog_catalogitem"."is_poster", "catalog_catalogitem"."search_string", "catalog_catalogitem"."search_vector",
SIMILARITY("catalog_catalogitem"."search_string", 'remnot') AS "sim"
FROM "catalog_catalogitem" WHERE ("catalog_catalogitem"."status" = true AND SIMILARITY("catalog_catalogitem"."search_string", 'remnot') > 0.05) ORDER BY "sim" DESC
CREATE INDEX catalog_item_srch_str ON catalog_catalogitem USING GIN (search_string gin_trgm_ops);
CREATE EXTENSION btree_gin;
Но ищется-то медленно (
для описанных операторов. Не для функций.
index support is bound to operators in Postgres, not to functions.