【问题标题】:Search without accents must return words with accents不带重音的搜索必须返回带重音的单词
【发布时间】:2013-01-02 04:14:38
【问题描述】:

我有一个使用 Hibernate、Spring 和 Java 开发的 Web 应用程序,它可以访问 Informix 数据库...

假设您正在搜索某条带有重音符号的记录,例如“María”,但您在搜索框中输入“Maria”......现在它没有显示任何结果,但它必须显示“ María”唱片,以及任何其他组合,如“Maríá”或“Máríá”或“Mária”等...

我怎样才能实现它?在此先感谢...

【问题讨论】:

  • Informix 没有 SOUNDEX 函数,也没有 SOUND LIKE 操作。因此,您需要使用TRANSLATE 列出“所有”可能性。

标签: java hibernate search hibernate-search accent-insensitive


【解决方案1】:

当您需要通过 Hibernate 搜索数据库并担心口音、对更好的自然语言匹配感兴趣,或者只是想探索自动建议或错字更正等选项时,您应该查看 Hibernate Search,它可以自动执行大部分操作这通过几个注释。

【讨论】:

    【解决方案2】:

    您需要使用 ascii 化字符串添加另一列,并将其与 ascii 化搜索字符串进行比较,但使用主字符串作为结果。无法说服 Informix 为您执行此操作,尤其是当您希望从索引中获取它时。

    附带说明,如果所有字符串都在 Java 内存中,则可以使用 SortedMap 和自定义的基于 CollatorComparator

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2013-10-12
      相关资源
      最近更新 更多