@@ -351,6 +351,56 @@ instance Arbitrary RegexpFlags where
351351instance Arbitrary IndexAliasCreate where
352352 arbitrary = IndexAliasCreate <$> arbitrary <*> reduceSize arbitrary
353353
354+instance Arbitrary Query where
355+ arbitrary = reduceSize $ oneof [ TermQuery <$> arbitrary <*> arbitrary
356+ , TermsQuery <$> arbitrary <*> arbitrary
357+ , QueryMatchQuery <$> arbitrary
358+ , QueryMultiMatchQuery <$> arbitrary
359+ , QueryBoolQuery <$> arbitrary
360+ , QueryBoostingQuery <$> arbitrary
361+ , QueryCommonTermsQuery <$> arbitrary
362+ , ConstantScoreFilter <$> arbitrary <*> arbitrary
363+ , ConstantScoreQuery <$> arbitrary <*> arbitrary
364+ , QueryDisMaxQuery <$> arbitrary
365+ , QueryFilteredQuery <$> arbitrary
366+ , QueryFuzzyLikeThisQuery <$> arbitrary
367+ , QueryFuzzyLikeFieldQuery <$> arbitrary
368+ , QueryFuzzyQuery <$> arbitrary
369+ , QueryHasChildQuery <$> arbitrary
370+ , QueryHasParentQuery <$> arbitrary
371+ , IdsQuery <$> arbitrary <*> arbitrary
372+ , QueryIndicesQuery <$> arbitrary
373+ , MatchAllQuery <$> arbitrary
374+ , QueryMoreLikeThisQuery <$> arbitrary
375+ , QueryMoreLikeThisFieldQuery <$> arbitrary
376+ , QueryNestedQuery <$> arbitrary
377+ , QueryPrefixQuery <$> arbitrary
378+ , QueryQueryStringQuery <$> arbitrary
379+ , QuerySimpleQueryStringQuery <$> arbitrary
380+ , QueryRangeQuery <$> arbitrary
381+ , QueryRegexpQuery <$> arbitrary
382+ ]
383+
384+instance Arbitrary Filter where
385+ arbitrary = reduceSize $ oneof [ AndFilter <$> arbitrary <*> arbitrary
386+ , OrFilter <$> arbitrary <*> arbitrary
387+ , NotFilter <$> arbitrary <*> arbitrary
388+ , pure IdentityFilter
389+ , BoolFilter <$> arbitrary
390+ , ExistsFilter <$> arbitrary
391+ , GeoBoundingBoxFilter <$> arbitrary
392+ , GeoDistanceFilter <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
393+ , GeoDistanceRangeFilter <$> arbitrary <*> arbitrary
394+ , GeoPolygonFilter <$> arbitrary <*> arbitrary
395+ , IdsFilter <$> arbitrary <*> arbitrary
396+ , LimitFilter <$> arbitrary
397+ , MissingFilter <$> arbitrary <*> arbitrary <*> arbitrary
398+ , PrefixFilter <$> arbitrary <*> arbitrary <*> arbitrary
399+ , QueryFilter <$> arbitrary <*> arbitrary
400+ , RangeFilter <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
401+ , RegexpFilter <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
402+ , TermFilter <$> arbitrary <*> arbitrary]
403+
354404$(derive makeArbitrary ''IndexName)
355405$(derive makeArbitrary ''MappingName)
356406$(derive makeArbitrary ''DocId)
@@ -394,8 +444,6 @@ $(derive makeArbitrary ''PhraseSlop)
394444$(derive makeArbitrary ''MinDocFrequency)
395445$(derive makeArbitrary ''MaxDocFrequency)
396446$(derive makeArbitrary ''Regexp)
397−$(derive makeArbitrary ''Filter)
398−$(derive makeArbitrary ''Query)
399447$(derive makeArbitrary ''SimpleQueryStringQuery)
400448$(derive makeArbitrary ''FieldOrFields)
401449$(derive makeArbitrary ''SimpleQueryFlag)