6 个版本

0.2.0 2024年6月6日
0.1.4 2024年6月6日

#861算法

每月 30 次下载

Apache-2.0

8KB
149

ruzzy_rs

Crates.io

基于 Levenshtein 距离的 Rust 通用且灵活的模糊匹配器

安装

cargo add ruzzy

用法

此软件包根据 Levenshtein 距离(也称为编辑距离)执行模糊匹配。这意味着将字符串 A 转换为字符串 B 所需的字符串编辑越少,A 和 B 越相似。

fuzzy_match

此软件包公开的唯一函数是

fn fuzzy_match<'a, Value: 'a>(needle: &'a String, haystack: &'a Vec<(String, Value)>, config: FuzzyConfig) -> Option<&'a Value>;

其中

  • needle 是要匹配的字符串。
  • haystack 是键值对的集合,其中键部分与 needle 进行匹配
  • config 允许您调整匹配过程。

此函数返回一个 Option,可能包含最相似键的对应值。

FuzzyConfig

FuzzyConfig 允许您调整匹配过程。目前,支持以下配置

  • threshold:如果编辑距离高于此 threshold,则 haystack 中的键不可接受,并且不被视为匹配。
  • insertion_penalty:在 needle 中插入字符的成本(默认:1)。
  • deletion_penalty:在 needle 中删除字符的成本(默认:1)。
  • substitution_penalty:字符替换的成本(默认:2)。

无运行时依赖