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

前言

其实这个库早年就已经创建并完成了第一版,支持 全拼+首字母+中英文+多音字 搜索,功能还算强大。后面也一直没再关注。这次借着修复 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] = []
text.canMatch(with: searchText, all: &ranges)
if ranges.count > 0 {
    ...
}

如何集成

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

pod 'IASearchKit', '~> 1.2.0'

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

pod 'KeySearch', '~> 0.1.5'

源码地址:点我跳转

你可能感兴趣的:(关键字搜索库,支持全拼+首字母+多音字)