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