packages feed

esqueleto-textsearch 1.1.5 → 1.2.0

raw patch · 4 files changed

+35/−3 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Database.Esqueleto.TextSearch: prefixOrQuery :: SearchTerm -> SqlExpr (Value (TsQuery Lexemes))
+ Database.Esqueleto.TextSearch.Language: prefixAndQueryLang :: RegConfig -> SearchTerm -> SqlExpr (Value (TsQuery Lexemes))
+ Database.Esqueleto.TextSearch.Language: prefixOrQuery :: SearchTerm -> SqlExpr (Value (TsQuery Lexemes))
+ Database.Esqueleto.TextSearch.Language: prefixOrQueryLang :: RegConfig -> SearchTerm -> SqlExpr (Value (TsQuery Lexemes))
+ Database.Esqueleto.TextSearch.Language: tsquery_and :: SqlExpr (Value (TsQuery Lexemes)) -> SqlExpr (Value (TsQuery Lexemes)) -> SqlExpr (Value (TsQuery Lexemes))
+ Database.Esqueleto.TextSearch.Language: tsquery_or :: SqlExpr (Value (TsQuery Lexemes)) -> SqlExpr (Value (TsQuery Lexemes)) -> SqlExpr (Value (TsQuery Lexemes))

Files

Changelog.md view
@@ -1,5 +1,8 @@ # Change log for esqueleto text search  +## Version 1.2.0++ Add prefix or query.++ expose binops on tsquery  ## Version 1.1.5 + enable tests in CI
esqueleto-textsearch.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               esqueleto-textsearch-version:            1.1.5+version:            1.2.0 synopsis:           PostgreSQL full text search for Esqueleto description:        PostgreSQL text search functions for Esqueleto. homepage:           https://github.com/jappeace/esqueleto-textsearch
src/Database/Esqueleto/TextSearch.hs view
@@ -6,6 +6,7 @@ module Database.Esqueleto.TextSearch (    (@@.)   , prefixAndQuery+  , prefixOrQuery   , toSearchTerm   , SearchTerm   , ts_rank
src/Database/Esqueleto/TextSearch/Language.hs view
@@ -7,6 +7,9 @@ module Database.Esqueleto.TextSearch.Language   ( (@@.)   , prefixAndQuery+  , prefixOrQuery+  , prefixAndQueryLang+  , prefixOrQueryLang   , toSearchTerm   , toSearchTermWeighted   , SearchTerm@@ -16,6 +19,9 @@   , ts_rank   , ts_rank_cd   , setweight+  -- * ts binary+  , tsquery_or+  , tsquery_and   ) where  import Data.String (IsString)@@ -113,6 +119,14 @@       -> SqlExpr (Value (TsQuery Lexemes)) tsquery_and = unsafeSqlBinOp "&&" +-- | (||) for tsquery. This function would be called (&&.) but+-- Esqueleto's (&&.) confines that fn to sql boolean expressions.+-- x::tsquery && y::tsquery == to_tsquery('x & y')+tsquery_or :: SqlExpr (Value (TsQuery Lexemes))+      -> SqlExpr (Value (TsQuery Lexemes))+      -> SqlExpr (Value (TsQuery Lexemes))+tsquery_or = unsafeSqlBinOp "||"+ -- | format the query into lexemes --   the result can be used in '@@.' for example: --@@ -124,13 +138,27 @@ --   where_ $ (company ^. CompanySearchIndexDocument) @@. query -- @ --+--  this uses && to combine queries prefixAndQuery :: SearchTerm -> SqlExpr (Value (TsQuery Lexemes)) prefixAndQuery = prefixAndQueryLang "english"  -- | specify a language to be used with the query. prefixAndQueryLang :: RegConfig -> SearchTerm -> SqlExpr (Value (TsQuery Lexemes))-prefixAndQueryLang language (SearchTerm ts) =-  foldr1 tsquery_and+prefixAndQueryLang = prefixAndQueryLangWith tsquery_and++prefixOrQuery :: SearchTerm -> SqlExpr (Value (TsQuery Lexemes))+prefixOrQuery = prefixOrQueryLang "english"++-- | same as 'prefixAndQueryLang' but uses || to combine quereis+prefixOrQueryLang :: RegConfig -> SearchTerm -> SqlExpr (Value (TsQuery Lexemes))+prefixOrQueryLang = prefixAndQueryLangWith tsquery_or++-- | allows specifying which binary operation is used for combining queries.+prefixAndQueryLangWith :: (SqlExpr (Value (TsQuery Lexemes))+      -> SqlExpr (Value (TsQuery Lexemes))+      -> SqlExpr (Value (TsQuery Lexemes))) -> RegConfig -> SearchTerm -> SqlExpr (Value (TsQuery Lexemes))+prefixAndQueryLangWith binOp language (SearchTerm ts) =+  foldr1 binOp   $ map (to_tsquery (val language) . val) $ toList ts