git.iko.soy/typeable/bloodhound
on master help sign in
implemented simple queries
commitf6827a0a867251febc890fcc6fbc88eff7a91b94 authorChris Allen <cma@bitemyapp.com> dateSat 14 Jun 2014, 21:53 (12 years ago) parent3dbcca4
3 files changed+44
Database/Bloodhound/Types.hs+2 Database/Bloodhound/Types/Instances.hs+39 Makefile+3
Database/Bloodhound/Types.hs+2
@@ -138,6 +138,8 @@ module Database.Bloodhound.Types
138138 , Locale(..)
139139 , AnalyzeWildcard(..)
140140 , EnablePositionIncrements(..)
141+ , SimpleQueryFlag(..)
142+ , FieldOrFields(..)
141143 ) where
142144
143145import Data.Aeson
Database/Bloodhound/Types/Instances.hs+39
@@ -216,9 +216,48 @@ instance ToJSON Query where
216216 toJSON (QueryRegexpQuery query) =
217217 object [ "regexp" .= toJSON query ]
218218
219+ toJSON (QuerySimpleQueryStringQuery query) =
220+ object [ "simple_query_string" .= toJSON query ]
221+
222+
219223mField :: (ToJSON a, Functor f) => T.Text -> f a -> f (T.Text, Value)
220224mField field = fmap ((field .=) . toJSON)
221225
226+instance ToJSON SimpleQueryStringQuery where
227+ toJSON (SimpleQueryStringQuery sqsQueryString
228+ sqsFields sqsBoolean sqsAnalyzer
229+ sqsFlags sqsLowercaseExpanded sqsLocale) =
230+ object conjoined
231+ where base = [ "query" .= toJSON sqsQueryString ]
232+ maybeAdd =
233+ catMaybes [ mField "fields" sqsFields
234+ , mField "default_operator" sqsBoolean
235+ , mField "analyzer" sqsAnalyzer
236+ , mField "flags" sqsFlags
237+ , mField "lowercase_expanded_terms" sqsLowercaseExpanded
238+ , mField "locale" sqsLocale ]
239+ conjoined = base ++ maybeAdd
240+
241+instance ToJSON FieldOrFields where
242+ toJSON (FofField fieldName) =
243+ toJSON fieldName
244+ toJSON (FofFields fieldNames) =
245+ toJSON fieldNames
246+
247+instance ToJSON SimpleQueryFlag where
248+ toJSON SimpleQueryAll = "ALL"
249+ toJSON SimpleQueryNone = "NONE"
250+ toJSON SimpleQueryAnd = "AND"
251+ toJSON SimpleQueryOr = "OR"
252+ toJSON SimpleQueryPrefix = "PREFIX"
253+ toJSON SimpleQueryPhrase = "PHRASE"
254+ toJSON SimpleQueryPrecedence = "PRECEDENCE"
255+ toJSON SimpleQueryEscape = "ESCAPE"
256+ toJSON SimpleQueryWhitespace = "WHITESPACE"
257+ toJSON SimpleQueryFuzzy = "FUZZY"
258+ toJSON SimpleQueryNear = "NEAR"
259+ toJSON SimpleQuerySlop = "SLOP"
260+
222261instance ToJSON RegexpQuery where
223262 toJSON (RegexpQuery (FieldName rqQueryField)
224263 (Regexp regexpQueryQuery) rqQueryFlags
Makefile+3
@@ -24,6 +24,9 @@ reset:
2424haddock:
2525 cabal haddock --hoogle --hyperlink-source --html-location='http://hackage.haskell.org/package/bloodhound/docs' --contents-location='http://hackage.haskell.org/package/bloodhound'
2626
27+dist:
28+ cabal sdist
29+
2730# cp -R ./dist/doc/html/bloodhound/ bloodhound-0.1.0.1-docs
2831# tar cvzf --format=ustar -f bloodhound-0.1.0.1-docs.tar.gz bloodhound-0.1.0.1-docs
2932# curl -X PUT -H 'Content-Type: application/x-tar' -H 'Content-Encoding: gzip' --data-binary '@bloodhound-0.1.0.1-docs.tar.gz' 'https://bitemyapp:$PASSWORD@hackage.haskell.org/package/bloodhound-0.1.0.1/docs'