@@ -13,8 +13,6 @@ module Database.Bloodhound.Types
13 ( defaultCache
13 ( defaultCache
14 , defaultIndexSettings
14 , defaultIndexSettings
15 , halfRangeToKV
15 , halfRangeToKV
19 , rangeToKV
17 , rangeToKV
20 , showText
18 , showText
@@ -938,15 +936,6 @@ data ShardResult =
938 , shardsSuccessful :: Int
936 , shardsSuccessful :: Int
939 , shardsFailed :: Int } deriving (Eq, Show, Generic)
937 , shardsFailed :: Int } deriving (Eq, Show, Generic)
941−maybeJson :: ToJSON a => Text -> Maybe a -> [(Text, Value)]
942−maybeJson field (Just value) = [field .= toJSON value]
945−maybeJsonF :: (ToJSON (f Value), ToJSON a, Functor f) =>
946− Text -> Maybe (f a) -> [(Text, Value)]
947−maybeJsonF field (Just value) = [field .= fmap toJSON value]
950showText :: Show a => a -> Text
939showText :: Show a => a -> Text
951showText = T.pack . show
940showText = T.pack . show
@@ -1544,29 +1533,24 @@ instance (FromJSON a) => FromJSON (EsResult a) where
1545instance ToJSON Search where
1534instance ToJSON Search where
1546 toJSON (Search query sFilter sort sTrackSortScores sFrom sSize) =
1535 toJSON (Search query sFilter sort sTrackSortScores sFrom sSize) =
1547− object merged where
1548− lQuery = maybeJson "query" query
1536+ omitNulls [ "query" .= query
1549− lFilter = maybeJson "filter" sFilter
1537+ , "filter" .= sFilter
1550− lSort = maybeJsonF "sort" sort
1538+ , "sort" .= sort
1551− merged = mconcat [[ "from" .= sFrom
1539+ , "from" .= sFrom
1552− , "size" .= sSize
1540+ , "size" .= sSize
1553− , "track_scores" .= sTrackSortScores]
1541+ , "track_scores" .= sTrackSortScores ]
1559instance ToJSON SortSpec where
1544instance ToJSON SortSpec where
1560 toJSON (DefaultSortSpec
1545 toJSON (DefaultSortSpec
1561 (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped
1546 (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped
1562 dsSortMode dsMissingSort dsNestedFilter)) =
1547 dsSortMode dsMissingSort dsNestedFilter)) =
1563− object [dsSortFieldName .= object merged] where
1548+ object [dsSortFieldName .= omitNulls base] where
1564− base = ["order" .= toJSON dsSortOrder
1549+ base = [ "order" .= toJSON dsSortOrder
1565− , "ignore_unmapped" .= dsIgnoreUnmapped]
1550+ , "ignore_unmapped" .= dsIgnoreUnmapped
1566− lSortMode = maybeJson "mode" dsSortMode
1551+ , "mode" .= dsSortMode
1567− lMissingSort = maybeJson "missing" dsMissingSort
1552+ , "missing" .= dsMissingSort
1568− lNestedFilter = maybeJson "nested_filter" dsNestedFilter
1553+ , "nested_filter" .= dsNestedFilter ]
1569− merged = mconcat [base, lSortMode, lMissingSort, lNestedFilter]
1571 toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =
1555 toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =
1572 object [ "unit" .= toJSON units
1556 object [ "unit" .= toJSON units