name: full-text-search
version: 0.2.1.0
synopsis: In-memory full text search engine
description: An in-memory full text search engine library. It lets you
run full-text queries on a collection of your documents.
.
Features:
.
* 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
<http://hackage.haskell.org/package/tokenize tokenize> and
<http://hackage.haskell.org/package/snowball 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
<http://hackage.haskell.org/package/hackage-server hackage-server>
where it provides the backend for the package search feature.
license: BSD3
license-file: LICENSE
author: Duncan Coutts
maintainer: Duncan Coutts <duncan@well-typed.com>
copyright: 2013-2014 Duncan Coutts, 2014 Well-Typed LLP,
2014 IRIS Connect Ltd.
category: Data, Text, Search
build-type: Simple
cabal-version: >=1.10
extra-source-files: changelog
source-repository head
type: darcs
location: http://code.haskell.org/full-text-search/
flag build-search-demo
default: False
description: Build a little program illustrating the use of the library
library
exposed-modules: Data.SearchEngine,
Data.SearchEngine.BM25F
other-modules: Data.SearchEngine.Types,
Data.SearchEngine.Update,
Data.SearchEngine.Query,
Data.SearchEngine.Autosuggest,
Data.SearchEngine.SearchIndex,
Data.SearchEngine.DocFeatVals,
Data.SearchEngine.TermBag,
Data.SearchEngine.DocTermIds,
Data.SearchEngine.DocIdSet
other-extensions: BangPatterns,
NamedFieldPuns,
RecordWildCards,
GeneralizedNewtypeDeriving,
ScopedTypeVariables
build-depends: base >=4.5 && <4.7,
array >=0.4 && <0.5,
vector >=0.10 && <0.11,
containers >=0.4 && <0.6,
text >=0.11 && <1.2
default-language: Haskell2010
ghc-options: -Wall -funbox-strict-fields
executable search-demo
main-is: Main.hs
other-modules: PackageSearch
ExtractNameTerms
ExtractDescriptionTerms
PackageIndexUtils
-- support code for package descriptions:
HaddockHtml
HaddockLex
HaddockParse
HaddockTypes
hs-source-dirs: demo
if !flag(build-search-demo)
buildable: False
else
build-depends: full-text-search,
base, text, containers, array,
tokenize == 0.1.*,
snowball == 1.0.*,
transformers,
split == 0.2.*,
Cabal >= 1.14 && < 1.20,
bytestring, filepath, directory, tar, time, mtl
build-tools: alex, happy
default-language: Haskell2010
other-extensions: GeneralizedNewtypeDeriving
ghc-options: -Wall
test-suite qc-props
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs: . tests
build-depends: base,
array,
vector,
containers,
text,
QuickCheck ==2.*,
tasty ==0.8.*,
tasty-quickcheck ==0.8.*
other-modules: Test.Data.SearchEngine.TermBag,
Test.Data.SearchEngine.DocIdSet,
Data.SearchEngine.DocTermIds,
Data.SearchEngine.DocIdSet
default-language: Haskell2010
ghc-options: -Wall