SumanP89 Asked: 2023-05-19 17:15:39 +0800 CST2023-05-19 17:15:39 +0800 CST 2023-05-19 17:15:39 +0800 CST 对于几乎匹配的搜索文本,Postgres 相似性查询得分非常低 772 询问 : select similarity( 'GTudH','tud'), similarity ('GTudH', 'gtu'), similarity ('GTudH', 'gdh') 以上是Postgres的查询结果,谁能解释一下为什么第一个相似度分数只有0.1,第三个是0.25 对 Snowflake 进行了相同的测试,这似乎没问题。 postgresql 1 个回答 Voted Best Answer mustaccio 2023-05-22T20:13:13+08:002023-05-22T20:13:13+08:00 您正在将苹果与橙子进行比较。正如文档所述,三元组相似性是通过以下方式衡量的 他们共享的八字数。 您可以很容易地看出,通过这种衡量,第一个示例中的两个字符串几乎没有共同点:它们仅共享一个三元组: select show_trgm( 'GTudH'),show_trgm('tud') show_trgm show_trgm {"g","gt","dh",gtu,tud,udh} {“t”,“tu”,tud,“ud”} 但是,您的 Snowflake 示例显示了Jaro-Winkler similarity,它使用了完全不同的算法,因此按理说结果也会大不相同。
您正在将苹果与橙子进行比较。正如文档所述,三元组相似性是通过以下方式衡量的
您可以很容易地看出,通过这种衡量,第一个示例中的两个字符串几乎没有共同点:它们仅共享一个三元组:
但是,您的 Snowflake 示例显示了Jaro-Winkler similarity,它使用了完全不同的算法,因此按理说结果也会大不相同。