• 一个简单的汉字搜索匹配示例(支持拼音、首字母简写)


    在社交应用中,很多场景下需要用到搜索,以微信的搜索通讯录为例。好友自己有昵称,我们可能给他/她备注一个昵称,在输入:拼间、首字母、原文时都应该能匹配到(匹配优先是备注然后才是原来的昵称)。这里以‘芈月传’为例,‘芈’不是常见字,所以输入:myz或者miyuezhuan或者芈月传,都应该能匹配到‘芈月传’这个结果。当然不一定需要全部写完,比如输入:my的时候就应该能匹配到‘芈月传’了。针对多音字的话,可能会麻烦一些,不过也可以解决(在下面的例子之上再进行扩展即可),一般场景下单音已经解决90%以上的问题了,不建议搞的特别复杂。

     

    下面例子的思路是input:原文,output:[全拼,首字母,原文],使用indexOf或者正则忽略大小写对searchKey进行匹配,只要命中一个则认为匹配到了。比如[‘ruyichuan’,’ryc’,’如懿传’],要搜索‘如懿传’,因为中间那个字比较难写,所以我可能会打:ry或者ruyi,此时就应该能匹配到’如懿传’了,做的更好一些就是匹配的字进行标红,那么第一项‘ruyichuan’就应该是数组而不是字符串了。下面这个例子比较取巧,有需要的童鞋可以做为一个参考 :)

     

  • 相关阅读:
    Java 装箱、拆箱 包装器
    Oracle decode函数 除数为零
    Java并发编程之ConcurrentHashMap
    MessageDigest 类
    Java中关于OOM的场景及解决方法
    Memcached的一些知识
    Solr导入数据库数据
    前端学习笔记(zepto或jquery)——对li标签的相关操作(二)
    前端学习笔记(zepto或jquery)——对li标签的相关操作(一)
    DES加密深度优化——随机生成加密字符串
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/5954547.html
Copyright © 2020-2023  润新知