9次发布
0.2.5 | 2024年4月19日 |
---|---|
0.2.4 | 2023年2月6日 |
0.2.3 | 2021年4月11日 |
0.2.2 | 2020年12月3日 |
0.1.4 | 2019年4月16日 |
#194 in 算法
8,299每月下载量
在 5 crates 中使用
19KB
208 行
simsearch
一个简单轻量级的内存模糊搜索引擎,用于搜索类似字符串(这里是个双关语)。
文档
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
simsearch = "0.2"
示例
use simsearch::SimSearch;
let mut engine: SimSearch<u32> = SimSearch::new();
engine.insert(1, "Things Fall Apart");
engine.insert(2, "The Old Man and the Sea");
engine.insert(3, "James Joyce");
let results: Vec<u32> = engine.search("thngs");
assert_eq!(results, &[1]);
默认情况下,使用Jaro-Winkler距离。可以通过自定义 SearchOptions
指定替代的Levenshtein距离,它经过SIMD加速,但仅适用于ASCII字节字符串。
use simsearch::{SimSearch, SearchOptions};
let options = SearchOptions::new().levenshtein(true);
let mut engine: SimSearch<u32> = SimSearch::new_with(options);
还可以通过以下方式尝试交互式演示
$ cargo run --release --example books
贡献
欢迎所有类型的贡献。
- 问题。 当您发现错别字、错误或有任何疑问时,请随时提出问题。
- 拉取请求。 新收集、更好的实现、更多测试、更多文档和错别字修复都欢迎。
许可
在MIT许可下授权(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
依赖关系
~270–440KB