我正在尝试编写一个查询我们的目录服务器运行openldap的搜索。使用openldap进行近似搜索
的用户会使用他们感兴趣的人的名字或姓氏进行搜索。
我发现重音字符的问题(如áéíóú
),因为姓氏和名字都写在西班牙语,所以虽然正确的方法是Pérez
它可以写为搜寻的缘故Perez
,没有口音。
如果我使用'(cn=*Perez*)'
,我只得到非重音结果。
如果我使用'(cn=*Pérez*)'
,我只会得到重音结果。
如果我使用'(cn=~Perez)'
我得到奇怪的结果(或至少没有什么我可以使用,因为虽然结果中含有Perez
和Pérez
ocurrences,我也得到了一定的成果,显然无关与查询...
在西班牙语中,这发生了很多......无论是你想要称之为懒惰,事实是,对于这种事情,人们往往不写出口音,因为它假定所有这些搜索都与这两个选项(我猜,因为谷歌允许它,每个人都认为它应该这样工作)。
除了更新d atabase并删除所有重音并修改它们在查询中......你能想到另一种解决方案吗?
因此,对于字符串,〜=指定基于Soundex(http://en.wikipedia.org/wiki/Soundex)的匹配? – RobertG