0

我使用 pg_trgrm 来检查字符串匹配,我对结果非常满意。但这并不是我想要的方式。我希望像“poduto”这样的搜索会找到“produtos”(缺少 r)。并且“sofáa”也可以找到“sofa”。我正在使用 posgresql 9.6。

当我输入“vermelo”(缺少h)时,它确实找到了“vermelho”。当我输入“sof”时,它确实找到了“沙发”。似乎只有中间的一些字母可以省略,我总是会错过最后一个字母。我希望能够错过单词中间的任何字母。在 sofáa 和 sofá 的情况下也可以犯“两个错误”(我使用了重音并使用了一个额外的“a”)。

4

1 回答 1

1

解决方案是降低pg_trgm.similarity_threshold(或者pg_trgm.word_similarity_threshold如果您正在使用<%or %>)。

然后也会找到相似度较低的词。

于 2018-05-30T02:55:26.477 回答