很明显,数据中应该有三个字段是用来做索引的,字段一:每一个词的拼音,字段二:每一个词的首字母,字段三每个词的汉字,在like的时候同时like这三个字段

解决方案 »

  1.   

    pinyin4j.jar 将汉字转换为拼音,你可以逆向
      

  2.   

    我感觉这个挺复杂的。有点类似做输入法功能。需要考虑频繁词,词组,多音多义等等问题。Google有Google拼音,百度有百度拼音,sogou有sogou拼音。他们都有词库可以直接用。用jar包处理我感觉是不太靠谱的,这个必定要走数据字典。
      

  3.   

    可以扩展一个表A,存储汉字的首字母和原数据表B中的id。
    在进行查询的时候,假如输入cq,那就查A中like cq 的记录,再根据A中存的B.id查询B的记录,便可取到字段实际含义。扩展包的数据同步,有以下方法:
    1、使用数据库触发器(传闻性能不高);
    2、获取到批量的记录,定时执行更新,比如spring中配置job任务。JAVA获取汉字拼音或拼音首字母