Safe Haskell | None |
---|
- type Term = Text
- query :: (Ix field, Bounded field, Ix feature, Bounded feature) => SearchEngine doc key field feature -> [Term] -> [key]
- initSearchEngine :: (Ix field, Bounded field, Ix feature, Bounded feature) => SearchConfig doc key field feature -> SearchRankParameters field feature -> SearchEngine doc key field feature
- data SearchEngine doc key field feature
- data SearchConfig doc key field feature = SearchConfig {
- documentKey :: doc -> key
- extractDocumentTerms :: doc -> field -> [Term]
- transformQueryTerm :: Term -> field -> Term
- documentFeatureValue :: doc -> feature -> Float
- data SearchRankParameters field feature = SearchRankParameters {
- paramK1 :: !Float
- paramB :: field -> Float
- paramFieldWeights :: field -> Float
- paramFeatureWeights :: feature -> Float
- paramFeatureFunctions :: feature -> FeatureFunction
- paramResultsetSoftLimit :: !Int
- paramResultsetHardLimit :: !Int
- data FeatureFunction
- data NoFeatures
- noFeatures :: NoFeatures -> a
- insertDoc :: (Ord key, Ix field, Bounded field, Ix feature, Bounded feature) => doc -> SearchEngine doc key field feature -> SearchEngine doc key field feature
- insertDocs :: (Ord key, Ix field, Bounded field, Ix feature, Bounded feature) => [doc] -> SearchEngine doc key field feature -> SearchEngine doc key field feature
- deleteDoc :: (Ord key, Ix field, Bounded field) => key -> SearchEngine doc key field feature -> SearchEngine doc key field feature
- queryExplain :: (Ix field, Bounded field, Ix feature, Bounded feature) => SearchEngine doc key field feature -> [Term] -> [(Explanation field feature Term, key)]
- data Explanation field feature term = Explanation {
- overallScore :: Float
- termScores :: [(term, Float)]
- nonTermScores :: [(feature, Float)]
- termFieldScores :: [(term, [(field, Float)])]
- setRankParams :: SearchRankParameters field feature -> SearchEngine doc key field feature -> SearchEngine doc key field feature
- invariant :: (Ord key, Ix field, Bounded field) => SearchEngine doc key field feature -> Bool
Basic interface
Querying
query :: (Ix field, Bounded field, Ix feature, Bounded feature) => SearchEngine doc key field feature -> [Term] -> [key]Source
Making a search engine instance
initSearchEngine :: (Ix field, Bounded field, Ix feature, Bounded feature) => SearchConfig doc key field feature -> SearchRankParameters field feature -> SearchEngine doc key field featureSource
data SearchEngine doc key field feature Source
data SearchConfig doc key field feature Source
SearchConfig | |
|
data SearchRankParameters field feature Source
SearchRankParameters | |
|
data FeatureFunction Source
LogarithmicFunction Float | log (lambda_i + f_i) |
RationalFunction Float | f_i / (lambda_i + f_i) |
SigmoidFunction Float Float | 1 / (lambda + exp(-(lambda' * f_i)) |
Helper type for non-term features
noFeatures :: NoFeatures -> aSource
Managing documents to be searched
insertDoc :: (Ord key, Ix field, Bounded field, Ix feature, Bounded feature) => doc -> SearchEngine doc key field feature -> SearchEngine doc key field featureSource
insertDocs :: (Ord key, Ix field, Bounded field, Ix feature, Bounded feature) => [doc] -> SearchEngine doc key field feature -> SearchEngine doc key field featureSource
deleteDoc :: (Ord key, Ix field, Bounded field) => key -> SearchEngine doc key field feature -> SearchEngine doc key field featureSource
Explain mode for query result rankings
queryExplain :: (Ix field, Bounded field, Ix feature, Bounded feature) => SearchEngine doc key field feature -> [Term] -> [(Explanation field feature Term, key)]Source
data Explanation field feature term Source
A breakdown of the BM25F score, to explain somewhat how it relates to the inputs, and so you can compare the scores of different documents.
Explanation | |
|
Functor (Explanation field feature) | |
(Show field, Show feature, Show term) => Show (Explanation field feature term) |
setRankParams :: SearchRankParameters field feature -> SearchEngine doc key field feature -> SearchEngine doc key field featureSource