使用ASCII等价物查询变音符号

时间:2016-09-10 21:56:39

标签: android sqlite diacritics

更具体地说,我正在为Android编写类似字典的应用程序,并且想要在其中查询带有变音字符(ä,ü,ö)的单词,而无需用户输入它们。例如,如果用户搜索“aufhoren”,则查询应返回“aufhören”。

我的解决方案

我能想到的最佳解决方案是在查询之前用'_'替换可能的变音字符,但这会引入以下问题:如果用户输入类似“schatzen”的内容,则查询也会包含类似的但是不相关的单词“schützen”而不仅仅是“schätzen”。我也想用ß替换s,但因为它不是元音,所以不会产生错误的查询。

我找到的其他解决方案

  • 使用替换:我真的不知道计算会有多重。将有1000多行,查询不仅限于“单词”列,还包括“含义”和“示例”列(如果用户选择。它很有用,因为某些单词可能用于另一个示例中字)
  • 创建一个标准化列:与上面相同的原因,创建一个没有帮助,创建3将使表加倍。
  • 整理本地化:
  • 无法正常工作。根据{{​​3}},它不像'%term%'那样有效,这使得它变得毫无用处。

    String query = "select * from worterbuch where wort like '%" + constraint.toString() + "%' order by wort collate localized";
    db.setLocale(Locale.GERMANY);
    res = db.rawQuery(query,null);
    

0 个答案:

没有答案