关键字搜索库,支持全拼+首字母+多音字

前言

其实这个库早年就已经创建并完成了第一版,支持 全拼+首字母+中英文+多音字 搜索,功能还算强大。后面也一直没再关注。这次借着修复 BUG 的功夫更新了一版,并发布了一个 swift 版本,也算还了一笔技术债。

项目地址:点我

功能介绍

这个库目前由 ObjectiveC 版和 Swift 版。都支持 全拼+首字母+中英文+多音字 搜索。

具体效果如何,请看下图:

Search.gif

原理介绍

  1. 加载拼音资源文件,初始化配置
  2. 以匹配关键字 keyword 为例,优先精准匹配
  3. 精准匹配没搜索到,那么考虑将搜索文本转成拼音首字母,将 keyword 去搜索这个拼音首字母的字符串是否有匹配到
  4. 如果拼音首字母没匹配到,那么考虑全拼是否能匹配

实现原理说穿了还是比较简单的,主要是将各个文字的拼音的排列组合列出来,再去一一匹配。

使用

OC版

NSArray *ranges;
BOOL match = [self.textLabel.text canMatchWithKeyword:searchText allRanges:&ranges];
if (match) {
    ...
}

swift版

var ranges: [Range<String.Index>] = []
text.canMatch(with: searchText, all: &ranges)
if ranges.count > 0 {
    ...
}

如何集成

对于ObjectiveC项目,通过pod组件库的方式引入。执行:

pod 'IASearchKit', '~> 1.2.0'

对于Swift项目,通过pod组件库方式引入。执行:

pod 'KeySearch', '~> 0.1.5'

源码地址:点我跳转

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容