Crate simsearch

source ·
Expand description

A simple and lightweight fuzzy search engine that works in memory, searching for similar strings (a pun here).

§Examples

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]);

By default, Jaro-Winkler distance is used. An alternative Levenshtein distance, which is SIMD-accelerated but only works for ASCII byte strings, can be specified with SearchOptions:

use simsearch::{SimSearch, SearchOptions};

let options = SearchOptions::new().levenshtein(true);
let mut engine: SimSearch<u32> = SimSearch::new_with(options);

Structs§