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

时间:2022-07-25
本文章向大家介绍【每周一库】 simsearch - a simple and lightweight fuzzy search engine,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本期的每周一库带来的是simsearch,一个运行在内存的轻量级字符串模糊搜索引擎。

首先列出库的链接

  • github: simsearch
  • docs.rs: simsearch

接下来我们通过simsearch gihub中给出的例子来试用

开发环境

  • rustc --version: rustc 1.45.2 (d3fb005a3 2020-07-31)
  • cargo --version: cargo 1.45.1 (f242df6ed 2020-07-22)

首先在Cargo.toml文件中添加依赖项

simsearch = "0.2"
use simsearch::SimSearch;
use std::time::Instant;

fn main(){
    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 has somethings");
    
    let pattern = "thngs";

    let start = Instant::now();
    let res =  engine.search(&pattern);
    let end = Instant::now();

    println!("pattern: {:?}", pattern.trim());
    println!("results: {:?}", res);
    println!("time: {:?}", end - start);
}

运行结果如下

接下来我们调整插入的第三个字符串为James Joyce has some things,期望是能够通过搜索patternthngs找到第一个字符串和第三个字符串,运行结果如下:

以上就是本期的每周一库