java的拼音字母检索汉字
JavaEE编程,需要实现拼音字母检索汉字,比如说,一个药品的名称很长,例如阿司匹林,输入asipilin则能查询出来,我知道这个应该有一张对应的表,但是在添加药品的时候...
JavaEE编程,需要实现拼音字母检索汉字,比如说,一个药品的名称很长,例如阿司匹林,输入asipilin则能查询出来,我知道这个应该有一张对应的表,但是在添加药品的时候,不要自己输入拼音,应该怎么实现呢?是在程序里面实现,还是数据库中有相关的实现方式呢?用的是MySQL,希望讲解详细一些,谢谢拉。
展开
3个回答
展开全部
看看这个js的实现.
http://hi.baidu.com/134931/blog/item/311b82589e215add9c8204e5.html
我觉得,先实现汉字转拼音的方法.
数据库里加一个字段存放这些拼音的简写, 每次插入数据的时候,调用这个方法.
这样每个词就有字典了. 最好是用拼音首字母.
http://hi.baidu.com/134931/blog/item/311b82589e215add9c8204e5.html
我觉得,先实现汉字转拼音的方法.
数据库里加一个字段存放这些拼音的简写, 每次插入数据的时候,调用这个方法.
这样每个词就有字典了. 最好是用拼音首字母.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参考思路:
在数据中应该有三个字段是用来做索引的,字段一:每一个词的拼音,字段二:每一个词的首字母,字段三每个词的汉字,在like的时候同时like这三个字段;
可以扩展一个表A,存储汉字的首字母和原数据表B中的id。
在进行查询的时候,假如输入cq,那就查A中like cq 的记录,再根据A中存的B.id查询B的记录,便可取到字段实际含义。
扩展包的数据同步,有以下方法:
1、使用数据库触发器(传闻性能不高);
2、获取到批量的记录,定时执行更新,比如spring中配置job任务。
在数据中应该有三个字段是用来做索引的,字段一:每一个词的拼音,字段二:每一个词的首字母,字段三每个词的汉字,在like的时候同时like这三个字段;
可以扩展一个表A,存储汉字的首字母和原数据表B中的id。
在进行查询的时候,假如输入cq,那就查A中like cq 的记录,再根据A中存的B.id查询B的记录,便可取到字段实际含义。
扩展包的数据同步,有以下方法:
1、使用数据库触发器(传闻性能不高);
2、获取到批量的记录,定时执行更新,比如spring中配置job任务。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以为您提供一种解决这个问题的一个思路:
可以使用将药品名称的拼音缩写,如上面的“阿司匹林”的缩写为asipilin放入数据库中该药品信息表中的一个字段中存储。那么你在查询的时候,既使用药品的中文名称查询,又使用拼音的名称进行查询(或运算符连接)。在添加这种药品的中文名称的时候,我们可以使用一个汉字转换拼音的算法进行转换。这样的类在网上有很多。http://www.cn-java.com/www1/?action-viewnews-itemid-3039%27/
(是那个名叫CnToSpell的类)
其实类似的问题都可以使用这样的方法来解决。当然也有更多的解决方案了,LZ不妨去CSDN上去查查,说不定有意想不到的结果
可以使用将药品名称的拼音缩写,如上面的“阿司匹林”的缩写为asipilin放入数据库中该药品信息表中的一个字段中存储。那么你在查询的时候,既使用药品的中文名称查询,又使用拼音的名称进行查询(或运算符连接)。在添加这种药品的中文名称的时候,我们可以使用一个汉字转换拼音的算法进行转换。这样的类在网上有很多。http://www.cn-java.com/www1/?action-viewnews-itemid-3039%27/
(是那个名叫CnToSpell的类)
其实类似的问题都可以使用这样的方法来解决。当然也有更多的解决方案了,LZ不妨去CSDN上去查查,说不定有意想不到的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询