@@ -375,6 +375,7 @@ data Filter = AndFilter [Filter] Cache
375 | GeoDistanceFilter GeoPoint Distance DistanceType OptimizeBbox Cache
375 | GeoDistanceFilter GeoPoint Distance DistanceType OptimizeBbox Cache
376 | GeoDistanceRangeFilter GeoPoint DistanceRange
376 | GeoDistanceRangeFilter GeoPoint DistanceRange
377 | GeoPolygonFilter FieldName [LatLon]
377 | GeoPolygonFilter FieldName [LatLon]
378+ | IdsFilter MappingName [DocumentID]
378 deriving (Eq, Show)
379 deriving (Eq, Show)
380class Monoid a => Seminearring a where
381class Monoid a => Seminearring a where
@@ -437,6 +438,11 @@ instance ToJSON Filter where
437 object [geoField .=
438 object [geoField .=
438 object ["points" .= fmap toJSON latLons]]]
439 object ["points" .= fmap toJSON latLons]]]
441+ toJSON (IdsFilter mappingName values) =
443+ object ["type" .= mappingName
444+ , "values" .= fmap T.pack values]]
440instance ToJSON GeoPoint where
446instance ToJSON GeoPoint where
441 toJSON (GeoPoint geoField latLon) =
447 toJSON (GeoPoint geoField latLon) =
442 object [geoField .= toJSON latLon]
448 object [geoField .= toJSON latLon]