首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【每周一库】simsearch-a simple and lightweight fuzzy search engine

本期的每周一库带来的是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找到第一个字符串和第三个字符串,运行结果如下:

以上就是本期的每周一库

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200918A0M0F600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券