-
Notifications
You must be signed in to change notification settings - Fork 5
/
full-text-search.cabal
139 lines (132 loc) · 5.96 KB
/
full-text-search.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: full-text-search
version: 0.2.2.2
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.
bug-reports: https://github.com/well-typed/full-text-search/issues
license: BSD3
license-file: LICENSE
author: Duncan Coutts
maintainer: Duncan Coutts <duncan@well-typed.com>,
Adam Gundry <adam@well-typed.com>
copyright: 2013-2014 Duncan Coutts, 2014 Well-Typed LLP,
2014-2023 IRIS Connect Ltd.
category: Data, Text, Search
build-type: Simple
cabal-version: >=1.10
extra-source-files: changelog
tested-with: GHC ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.4 || ==9.6.1
source-repository head
type: git
location: git@github.com:well-typed/full-text-search.git
flag build-search-demo
default: False
description: Build a little program illustrating the use of the library
manual: True
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.19,
array >=0.4 && <0.6,
vector >=0.11 && <0.14,
containers >=0.4 && <0.7,
text >=0.11 && <2.1
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 && < 3,
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,
Data.SearchEngine.TermBag
default-language: Haskell2010
ghc-options: -Wall