6 个版本
0.2.0 | 2024年6月6日 |
---|---|
0.1.4 | 2024年6月6日 |
#861 在 算法 中
每月 30 次下载
8KB
149 行
ruzzy_rs
基于 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
)。