via cshum/levi · GitHub.
Streaming full-text search for Node.js and browsers. Using LevelDB as storage backend.
npm install levi
Full-text search using TF-IDF and cosine similarity. Stream based query mechanism plus query-time field boost options. Provided with configurable text processing pipeline: Tokenizer, Porter Stemmer and Stopwords filter.
Levi is built on LevelUP – a fast, asynchronous, transactional storage interface. By default, it usesLevelDB on Node.js and IndexedDB on browser. Also works with a variety of LevelDOWN compatible backends.
In addition, Levi provides relevancy scoring for live changing data using TF-ICF – a TF-IDF approximation based on existing corpus. Such scoring matches comparably close to TF-IDF when existing corpus is sufficiently large, with significantly better performance O(N) instead of O(N^2).