本期的每周一库带来的是simsearch,一个运行在内存的轻量级字符串模糊搜索引擎。
首先列出库的链接
github: simsearch
docs.rs: simsearch
接下来我们通过simsearch gihub中给出的例子来试用
开发环境
: rustc 1.45.2 (d3fb005a3 2020-07-31)
: cargo 1.45.1 (f242df6ed 2020-07-22)
首先在文件中添加依赖项
从官网的介绍我们可以知道,simsearch默认使用了Jaro-Winkler similarity算法,该算法是在Jaro distance进一步改进的算法。它的基本原理是根据公式:
计算字符串的相似度,其中
的计算公式为
其中和表示字符串的长度,m表示两字符串的匹配字符数,t表示换位数目transposition的二分之一。
了解了基本概念之后我们通过代码来演示simsearch的功能
我们参考官方例子,想要从三个给出的字符串中找到模糊符合我们搜索pattern的index,适当修改官方例子代码如下:
运行结果如下
接下来我们调整插入的第三个字符串为,期望是能够通过搜索pattern找到第一个字符串和第三个字符串,运行结果如下:
以上就是本期的每周一库
领取专属 10元无门槛券
私享最新 技术干货