The full-text-search package
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.
|Versions||0.2.0.0, 0.2.1.0, 0.2.1.1, 0.2.1.3, 0.2.1.4|
|Dependencies||array (>=0.4 && <0.6), base (>=4.5 && <5.9), bytestring, Cabal (>=1.14 && <3), containers (>=0.4 && <0.6), directory, filepath, full-text-search, mtl, snowball (==1.0.*), split (>=0.2), tar, text (>=0.11 && <1.3), time, tokenize (>=0.1), transformers, vector (>=0.11 && <0.13) [details]|
|Copyright||2013-2014 Duncan Coutts, 2014 Well-Typed LLP, 2014 IRIS Connect Ltd.|
|Maintainer||Duncan Coutts <firstname.lastname@example.org>|
|Category||Data, Text, Search|
|Source repo||head: git clone email@example.com:well-typed/full-text-search.git|
|Uploaded||Thu Aug 31 08:42:37 UTC 2017 by MikolajKonarski|
|Downloads||1877 total (40 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs available [build log]
Last success reported on 2017-08-31 [all 1 reports]
Hackage Matrix CI
Build a little program illustrating the use of the library
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees