postgresql中的模糊匹配

postgresql中的模糊匹配,postgresql,geolocation,fuzzy-search,Postgresql,Geolocation,Fuzzy Search,我的数据库中有两个表,agridata和geoname。我试图找出agridata中名称的大地水准面列,如下所示 选择geonameid,从geoname中选择名称,其中从Agrida中选择不同的地区名称 我想对名字进行模糊匹配,因为数据库中并没有确切的名字。如何操作?您可以使用各种匹配算法,请参见,但我不能100%确定它们是否能与in子句一起工作。我想你真的想使用soundex连接 select distinct g.geonameid, g.name from geoname g join

我的数据库中有两个表,agridata和geoname。我试图找出agridata中名称的大地水准面列,如下所示

选择geonameid,从geoname中选择名称,其中从Agrida中选择不同的地区名称


我想对名字进行模糊匹配,因为数据库中并没有确切的名字。如何操作?

您可以使用各种匹配算法,请参见,但我不能100%确定它们是否能与in子句一起工作。我想你真的想使用soundex连接

select distinct g.geonameid, g.name from geoname g join agridata a on soundex(a.name) = g.name
或类似的


如果你有一个巨大的匹配集要处理,你可能想考虑使用一些搜索索引,比如ErryStasks/SoR.< /P> < P>使用PostgreSQL调用的扩展,实现TrimRAM匹配。p> 我们可以通过计算两个字符串共享的三元数来衡量它们的相似性。这个简单的想法对于测量许多自然语言中单词的相似性非常有效

我用过,速度很快,效果很好