@@ -375,6 +375,7 @@ data Filter = AndFilter [Filter] Cache
375375 | GeoDistanceFilter GeoPoint Distance DistanceType OptimizeBbox Cache
376376 | GeoDistanceRangeFilter GeoPoint DistanceRange
377377 | GeoPolygonFilter FieldName [LatLon]
378+ | IdsFilter MappingName [DocumentID]
378379 deriving (Eq, Show)
379380
380381class Monoid a => Seminearring a where
@@ -437,6 +438,11 @@ instance ToJSON Filter where
437438 object [geoField .=
438439 object ["points" .= fmap toJSON latLons]]]
439440
441+ toJSON (IdsFilter mappingName values) =
442+ object ["ids" .=
443+ object ["type" .= mappingName
444+ , "values" .= fmap T.pack values]]
445+
440446instance ToJSON GeoPoint where
441447 toJSON (GeoPoint geoField latLon) =
442448 object [geoField .= toJSON latLon]