#模糊搜索 #搜索引擎 #搜索 #字符串搜索 #模糊 #轻量级 #模式

simsearch

一个简单轻量级的内存模糊搜索引擎,用于搜索类似字符串(这里是个双关语)

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 算法

Download history 1918/week @ 2024-04-15 2326/week @ 2024-04-22 1207/week @ 2024-04-29 2818/week @ 2024-05-06 2839/week @ 2024-05-13 2527/week @ 2024-05-20 1969/week @ 2024-05-27 2186/week @ 2024-06-03 1812/week @ 2024-06-10 1589/week @ 2024-06-17 2305/week @ 2024-06-24 2438/week @ 2024-07-01 2643/week @ 2024-07-08 1602/week @ 2024-07-15 2261/week @ 2024-07-22 1717/week @ 2024-07-29

8,299每月下载量
5 crates 中使用

MIT/Apache

19KB
208

simsearch

Build Status crates.io docs.rs

一个简单轻量级的内存模糊搜索引擎,用于搜索类似字符串(这里是个双关语)。

文档

用法

将以下内容添加到您的 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