我目前正在尝试使用 pg_trgm 操作%
和<->
. 列上的 GIN 索引已经可用,但我找不到与前面提到的运算符等效的 sqlalchemy。
除了编写纯文本查询之外,解决此问题的最佳方法是什么。
一个简单的示例查询是:
tag = test
tag_subq = session.query(sticker_tag.file_id, f'sticker_tag.name <-> {tag}'.label(distance)) \
.filter(f'sticker_tag.name % {tag}')) \
.filter('distance' < 0.3) \
.subquery("tag_subq")
上面的查询显然不起作用,选择和过滤字符串只是占位符,用于可视化我打算做什么。