In-memory full text search engine

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed by Duncan Coutts
Maintained by Duncan Coutts

An in-memory full text search engine library. It lets you run full-text queries on a collection of your documents.


  • Keyword queries and auto-complete/auto-suggest queries.

  • Can search over any type of "document". (You explain how to extract search terms from them.)

  • Supports documents with multiple fields (e.g. title, body)

  • Supports documents with non-term features (e.g. quality score, page rank)

  • Uses the state of the art BM25F ranking function

  • Adjustable ranking parameters (including field weights and non-term feature scores)

  • In-memory but quite compact. It does not keep a copy of your original documents.

  • Quick incremental index updates, making it possible to keep your text search in-sync with your data.

It is independent of the document type, so you have to write the document-specific parts: extracting search terms and any stop words, case-normalisation or stemming. This is quite easy using libraries such as tokenize and snowball.

The source package includes a demo to illustrate how to use the library. The demo is a simplified version of how the library is used in the hackage-server where it provides the backend for the package search feature.

Changes Mikolaj Konarski <mikolaj@well-typed.com> August 2017
* Compatibility with GHC 8.0.2 and new package versions (no API changes) Duncan Coutts <duncan@well-typed.com> May 2015
* Compatibility with GHC 7.10 (no API changes) Adam Gundry <adam@well-typed.com> July 2014
* Compatibility with GHC 7.8 (no API changes) Duncan Coutts <duncan@well-typed.com> May 2014
* Fix for NaN scores with a doc field that is empty for all docs
* Add instance Show NoFeatures Duncan Coutts <duncan@well-typed.com> March 2014
* Add auto-complete / auto-suggest feature
* Add demo program
* Moved QC props into a separate test suite
* Work sponsored by IRIS Connect Ltd. Duncan Coutts <duncan@well-typed.com> Feb 2014
* Initial version as a separate library Duncan Coutts <duncan@community.haskell.org> Nov 2013
* Add "explain" mode for query
* Add non-term feature scores Duncan Coutts <duncan@community.haskell.org> Sept 2013
* Fix bug in index update (thanks to Matthew Gruen) Duncan Coutts <duncan@community.haskell.org> July 2013
* Initial version (included in hackage-server)

Depends on 5 packages:
Used by 1 package:
comments powered byDisqus