更新:最后,我使用Java6 Normalizer找出了哪些字符是a-zA-Z的扩展。因此,现在所有奇怪的字符都被转换为这50个ASCII字母。键入/自动完成时,速度没有明显下降。
GAE Search API使用哪种算法处理字符串?
为了优化目的(在浏览器内),我需要模仿对“ needle”字符串进行的任何处理,然后再将其与索引进行匹配。
基本上,这意味着将“怪异”字符转换为它们的“无聊”(和小写字母)表示形式:
ř,Ř=> r
ě,é,ë,Ě,É,Ë=> e
...
是否有一些标准化的(或至少是“知名的”)翻译表,所以我不会错过某些字符?
最佳答案
使用unidecode python库。
>>> import unidecode
>>> unidecode.unidecode(u'ř')
'r'
>>> unidecode.unidecode(u'ě,é,ë,Ě,É,Ë')
'e,e,e,E,E,E'
>>> unidecode.unidecode(u'ě,é,ë,Ě,É,Ë').lower()
'e,e,e,e,e,e'