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.
* Compatibility with GHC 7.10 (no API changes)
0.2.1.2 Adam Gundry <firstname.lastname@example.org> July 2014
* Compatibility with GHC 7.8 (no API changes)
0.2.1.1 Duncan Coutts <email@example.com> May 2014
* Fix for NaN scores with a doc field that is empty for all docs
* Add instance Show NoFeatures
0.2.1.0 Duncan Coutts <firstname.lastname@example.org> 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.
0.2.0.0 Duncan Coutts <email@example.com> Feb 2014
* Initial version as a separate library
0.1.1.0 Duncan Coutts <firstname.lastname@example.org> Nov 2013
* Add "explain" mode for query
* Add non-term feature scores
0.1.0.1 Duncan Coutts <email@example.com> Sept 2013
* Fix bug in index update (thanks to Matthew Gruen)
0.1.0.0 Duncan Coutts <firstname.lastname@example.org> July 2013
* Initial version (included in hackage-server)