有没有办法用整个短语 Postgres 类似地做三连词

Is there a way to do trigram similarly with whole phrases Postgres

现在使用 Postgres 和 pg_tgrm 如果我做任何相似性(严格的词,词,或只是标准的)它基于词来做,所以查询 'ruined by' 将获得 1 的排名对于术语 'ruined' 但对于 'ruined by design' 之类的术语则更少 有没有一种方法可以对整个短语进行处理。我尝试使用 FTS,但问题是 'ruined by' 根本不匹配 'ruined',除非您使用 'ruined | by' 但使用 |让秩序不再重要这是完全可能的事情。谢谢

相似性搜索始终是一种启发式方法;我不认为有一种方法可以自动“做正确的事”。

如果我没看错您的问题,并且您还想查找短语组成部分的匹配项,也许您应该使用全文搜索并对搜索词进行预处理以明确指出您想要的内容。

那么ruined by就会变成

to_tsquery('ruined | by | ruined <-> by')