如何将 À, Á, Â, Ã, Ä, Å 映射到 A 以实现更高效的搜索?
我正在编写一个 Android 应用程序,该应用程序需要在某些字符上使用这些符号搜索一组字符串。
为了使搜索结果更强大,我想将 À, Á, Â, Ã, Ä, Å 映射到 A。例如,如果用户的查询是“Test”,则以下字符串应与查询匹配:Tȅst, Tȇst、Teśt 等
在API级别> = 8的Android中是否有任何可能的方法?
Lucene 做这种事情。看看org.apache.lucene.analysis.icu.ICUNormalizer2Filter
for an approach to text normalization for search。
String text = "Your SeÅrchable Text";
String searchMe = text.replaceAll("[ÀÁÂÃÄÅ]", "A");
我会在主字符串的可搜索版本中替换所有这些。很简单!如果有多种情况(例如奇怪的 'E' 字符,只需再做一次 replaceAll:
searchMe = searchMe.replaceAll("[EEEEEE]", "E"); //(note: those are the weird Es in there)