@@ -16,6 +16,7 @@ module Database.Bloodhound.Types
16 , mkMatchQuery
16 , mkMatchQuery
17 , mkMultiMatchQuery
17 , mkMultiMatchQuery
18 , mkBoolQuery
18 , mkBoolQuery
19 , Version(..)
20 , Version(..)
20 , Status(..)
21 , Status(..)
21 , Existence(..)
22 , Existence(..)
@@ -122,6 +123,9 @@ module Database.Bloodhound.Types
122 , QueryPath(..)
123 , QueryPath(..)
123 , MinimumTermFrequency(..)
124 , MinimumTermFrequency(..)
124 , PercentMatch(..)
125 , PercentMatch(..)
126+ , FieldDefinition(..)
127import Data.Aeson
131import Data.Aeson
@@ -361,34 +365,35 @@ data Search = Search { queryBody :: Maybe Query
361 , from :: From
365 , from :: From
362 , size :: Size } deriving (Eq, Show)
366 , size :: Size } deriving (Eq, Show)
364−data Query = TermQuery Term (Maybe Boost)
369+ TermQuery Term (Maybe Boost)
365− | TermsQuery [Term] MinimumMatch
370+ | TermsQuery [Term] MinimumMatch
366− | QueryMatchQuery MatchQuery
371+ | QueryMatchQuery MatchQuery
367− | QueryMultiMatchQuery MultiMatchQuery
372+ | QueryMultiMatchQuery MultiMatchQuery
368− | QueryBoolQuery BoolQuery
373+ | QueryBoolQuery BoolQuery
369− | QueryBoostingQuery BoostingQuery
374+ | QueryBoostingQuery BoostingQuery
370− | QueryCommonTermsQuery CommonTermsQuery
375+ | QueryCommonTermsQuery CommonTermsQuery
371− | ConstantScoreFilter Filter Boost
376+ | ConstantScoreFilter Filter Boost
372− | ConstantScoreQuery Query Boost
377+ | ConstantScoreQuery Query Boost
373− | QueryDisMaxQuery DisMaxQuery
378+ | QueryDisMaxQuery DisMaxQuery
374− | QueryFilteredQuery FilteredQuery
379+ | QueryFilteredQuery FilteredQuery
375− | QueryFuzzyLikeThisQuery FuzzyLikeThisQuery
380+ | QueryFuzzyLikeThisQuery FuzzyLikeThisQuery
376− | QueryFuzzyLikeFieldQuery FuzzyLikeFieldQuery
381+ | QueryFuzzyLikeFieldQuery FuzzyLikeFieldQuery
377− | QueryFuzzyQuery FuzzyQuery
382+ | QueryFuzzyQuery FuzzyQuery
378− | QueryHasChildQuery HasChildQuery
383+ | QueryHasChildQuery HasChildQuery
379− | QueryHasParentQuery HasParentQuery
384+ | QueryHasParentQuery HasParentQuery
380− | IdsQuery MappingName [DocId]
385+ | IdsQuery MappingName [DocId]
381− | QueryIndicesQuery IndicesQuery
386+ | QueryIndicesQuery IndicesQuery
382− | MatchAllQuery (Maybe Boost)
387+ | MatchAllQuery (Maybe Boost)
383− | QueryMoreLikeThisQuery MoreLikeThisQuery
388+ | QueryMoreLikeThisQuery MoreLikeThisQuery
384− | QueryMoreLikeThisFieldQuery MoreLikeThisFieldQuery
389+ | QueryMoreLikeThisFieldQuery MoreLikeThisFieldQuery
385− | QueryNestedQuery NestedQuery
390+ | QueryNestedQuery NestedQuery
386− | QueryPrefixQuery PrefixQuery
391+ | QueryPrefixQuery PrefixQuery
387− | QueryQueryStringQuery QueryStringQuery
392+ | QueryQueryStringQuery QueryStringQuery
388− | QuerySimpleQueryStringQuery SimpleQueryStringQuery
393+ | QuerySimpleQueryStringQuery SimpleQueryStringQuery
389− | QueryRangeQuery RangeQuery
394+ | QueryRangeQuery RangeQuery
390− | QueryRegexpQuery RegexpQuery
395+ | QueryRegexpQuery RegexpQuery
391− deriving (Eq, Show)
396+ deriving (Eq, Show)
393data RegexpQuery =
398data RegexpQuery =
394 RegexpQuery { regexpQueryField :: FieldName
399 RegexpQuery { regexpQueryField :: FieldName
@@ -403,6 +408,9 @@ data RangeQuery =
403 , rangeQueryRange :: Either HalfRange Range
408 , rangeQueryRange :: Either HalfRange Range
404 , rangeQueryBoost :: Boost } deriving (Eq, Show)
409 , rangeQueryBoost :: Boost } deriving (Eq, Show)
411+mkRangeQuery :: FieldName -> Either HalfRange Range -> RangeQuery
412+mkRangeQuery f r = RangeQuery f r (Boost 1.0)
406data SimpleQueryStringQuery =
414data SimpleQueryStringQuery =
407 SimpleQueryStringQuery { simpleQueryStringQuery :: QueryString
415 SimpleQueryStringQuery { simpleQueryStringQuery :: QueryString
408 , simpleQueryStringField :: Maybe FieldOrFields
416 , simpleQueryStringField :: Maybe FieldOrFields
@@ -413,18 +421,19 @@ data SimpleQueryStringQuery =
413 , simpleQueryStringLocale :: Maybe Locale
421 , simpleQueryStringLocale :: Maybe Locale
414 } deriving (Eq, Show)
422 } deriving (Eq, Show)
416−data SimpleQueryFlag = SimpleQueryAll
424+data SimpleQueryFlag =
417− | SimpleQueryNone
426+ | SimpleQueryNone
418− | SimpleQueryAnd
427+ | SimpleQueryAnd
419− | SimpleQueryOr
428+ | SimpleQueryOr
420− | SimpleQueryPrefix
429+ | SimpleQueryPrefix
421− | SimpleQueryPhrase
430+ | SimpleQueryPhrase
422− | SimpleQueryPrecedence
431+ | SimpleQueryPrecedence
423− | SimpleQueryEscape
432+ | SimpleQueryEscape
424− | SimpleQueryWhitespace
433+ | SimpleQueryWhitespace
425− | SimpleQueryFuzzy
434+ | SimpleQueryFuzzy
426− | SimpleQueryNear
435+ | SimpleQueryNear
427− | SimpleQuerySlop deriving (Eq, Show)
436+ | SimpleQuerySlop deriving (Eq, Show)
429-- use_dis_max and tie_breaker when fields are plural?
438-- use_dis_max and tie_breaker when fields are plural?
430data QueryStringQuery =
439data QueryStringQuery =