【问题标题】:Get diacritic insensitive results from Realm database query从 Realm 数据库查询中获取变音符号不敏感的结果
【发布时间】:2017-03-23 03:57:55
【问题描述】:

我在一个简单的查询中遇到了麻烦,该查询从 Java 中的 Realm 引擎获取字符串以用于 Android 应用程序。 正如我的主题标题中所说,我想从我的查询中获得变音符号不敏感的结果。

示例: 如果用户输入单词“securite”,我希望我的查询返回“securite”和“sécurité”。

我该怎么做?

非常感谢您的帮助!

【问题讨论】:

    标签: java android string realm


    【解决方案1】:

    虽然 Realm 目前不支持该功能。根据您控制的数据量,您还可以添加可在搜索中使用的“规范化”字段。这里描述了一种方法:Remove diacritics from string in Java

    【讨论】:

    • 好答案!我选择了您的解决方案,并且效果很好!我只是在我的数据库表中创建了另一个字段,我将字符串“标准化”,然后,我标准化了用户输入并比较了 2 个字符串,完美!谢谢!
    【解决方案2】:

    目前这在 Realm 中是不可能的。您唯一的选择是管理包含您感兴趣的字母表中每个字母的所有可能性的表。像 [a, á, à, å, etc] 之类的东西,然后为每个字符串计算所有可能的排列并构建一个巨大的查询使用 equalTo() 和 or()。构建这样的查询可能比执行它需要更长的时间,但这是一个非常有趣的用例!如果您最终实施它,我很想知道结果!

    【讨论】:

    • 感谢您的回复!使用此解决方案,问题如下:如果我采用一组可能的重音“e”,[é, è, ë, ê],如果用户键入“securite”,我必须将单词的每个字母与计算可能性(安全,安全,安全,安全,...),但如果用户键入“安全”,我必须反向执行相同的操作。我认为它可能太重了......但无论如何感谢您的帮助!
    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多