- All Known Subinterfaces:
MultiTermQueryBuilder,QueryBuilder,SpanQueryBuilder
- All Known Implementing Classes:
AbstractAggregationBuilder,AbstractGeometryQueryBuilder,AbstractHighlighterBuilder,AbstractPercentilesAggregationBuilder,AbstractPipelineAggregationBuilder,AbstractQueryBuilder,AbstractRangeBuilder,AdjacencyMatrixAggregationBuilder,AggregationBuilder,AliasFilter,AutoDateHistogramAggregationBuilder,AvgAggregationBuilder,AvgBucketPipelineAggregationBuilder,BaseTermQueryBuilder,BoolQueryBuilder,BoostingQueryBuilder,BucketMetricsPipelineAggregationBuilder,BucketScriptPipelineAggregationBuilder,BucketSelectorPipelineAggregationBuilder,BucketSortPipelineAggregationBuilder,CardinalityAggregationBuilder,CombinedFieldsQueryBuilder,CommonTermsQueryBuilder,CompositeAggregationBuilder,ConstantScoreQueryBuilder,CumulativeSumPipelineAggregationBuilder,DateHistogramAggregationBuilder,DateRangeAggregationBuilder,DerivativePipelineAggregationBuilder,DisMaxQueryBuilder,DistanceFeatureQueryBuilder,DiversifiedAggregationBuilder,ExistsQueryBuilder,ExtendedStatsAggregationBuilder,ExtendedStatsBucketPipelineAggregationBuilder,FieldMaskingSpanQueryBuilder,FieldSortBuilder,FilterAggregationBuilder,FiltersAggregationBuilder,FunctionScoreQueryBuilder,FuzzyQueryBuilder,GeoBoundingBoxQueryBuilder,GeoBoundsAggregationBuilder,GeoCentroidAggregationBuilder,GeoDistanceAggregationBuilder,GeoDistanceQueryBuilder,GeoDistanceSortBuilder,GeoGridAggregationBuilder,GeoHashGridAggregationBuilder,GeoPolygonQueryBuilder,GeoShapeQueryBuilder,GeoTileGridAggregationBuilder,GlobalAggregationBuilder,HighlightBuilder,HighlightBuilder.Field,HistogramAggregationBuilder,IdsQueryBuilder,IntervalQueryBuilder,IpPrefixAggregationBuilder,IpRangeAggregationBuilder,KnnScoreDocQueryBuilder,KnnSearchBuilder,KnnVectorQueryBuilder,MatchAllQueryBuilder,MatchBoolPrefixQueryBuilder,MatchNoneQueryBuilder,MatchPhrasePrefixQueryBuilder,MatchPhraseQueryBuilder,MatchQueryBuilder,MaxAggregationBuilder,MaxBucketPipelineAggregationBuilder,MedianAbsoluteDeviationAggregationBuilder,MinAggregationBuilder,MinBucketPipelineAggregationBuilder,MissingAggregationBuilder,MoreLikeThisQueryBuilder,MovAvgPipelineAggregationBuilder,MovFnPipelineAggregationBuilder,MultiMatchQueryBuilder,MultiValuesSourceAggregationBuilder,MultiValuesSourceAggregationBuilder.LeafOnly,NestedAggregationBuilder,NestedQueryBuilder,PercentileRanksAggregationBuilder,PercentilesAggregationBuilder,PercentilesBucketPipelineAggregationBuilder,PipelineAggregationBuilder,PrefixQueryBuilder,QueryRescorerBuilder,QueryStringQueryBuilder,RandomSamplerAggregationBuilder,RangeAggregationBuilder,RangeQueryBuilder,RareTermsAggregationBuilder,RegexpQueryBuilder,RescorerBuilder,ReverseNestedAggregationBuilder,SamplerAggregationBuilder,ScoreSortBuilder,ScriptedMetricAggregationBuilder,ScriptQueryBuilder,ScriptScoreQueryBuilder,ScriptSortBuilder,SearchRequest,SearchSourceBuilder,SerialDiffPipelineAggregationBuilder,SignificantTermsAggregationBuilder,SignificantTextAggregationBuilder,SimpleQueryStringBuilder,SortBuilder,SpanContainingQueryBuilder,SpanFirstQueryBuilder,SpanMultiTermQueryBuilder,SpanNearQueryBuilder,SpanNearQueryBuilder.SpanGapQueryBuilder,SpanNotQueryBuilder,SpanOrQueryBuilder,SpanTermQueryBuilder,SpanWithinQueryBuilder,StatsAggregationBuilder,StatsBucketPipelineAggregationBuilder,SumAggregationBuilder,SumBucketPipelineAggregationBuilder,TermQueryBuilder,TermsAggregationBuilder,TermsQueryBuilder,TermsSetQueryBuilder,TimeSeriesAggregationBuilder,TopHitsAggregationBuilder,TypeQueryV7Builder,ValueCountAggregationBuilder,ValuesSourceAggregationBuilder,ValuesSourceAggregationBuilder.LeafOnly,ValuesSourceAggregationBuilder.MetricsAggregationBuilder,ValuesSourceAggregationBuilder.SingleMetricAggregationBuilder,VariableWidthHistogramAggregationBuilder,WeightedAvgAggregationBuilder,WildcardQueryBuilder,WrapperQueryBuilder
public interface Rewriteable<T>
A basic interface for rewriteable classes.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic <T extends Rewriteable<T>>
List<T>rewrite(List<T> rewritables, QueryRewriteContext context) Rewrites each element of the list until it doesn't change and returns a new list iff there is at least one element of the list that changed during it's rewrite.Rewrites this instance based on the provided context.static <T extends Rewriteable<T>>
Trewrite(T original, QueryRewriteContext context) Rewrites the givenRewriteableinto its primitive form.static <T extends Rewriteable<T>>
Trewrite(T original, QueryRewriteContext context, boolean assertNoAsyncTasks) Rewrites the givenRewriteableinto its primitive form.static <T extends Rewriteable<T>>
voidrewriteAndFetch(T original, QueryRewriteContext context, ActionListener<T> rewriteResponse) Rewrites the given rewriteable and fetches pending async tasks for each round before rewriting again.static <T extends Rewriteable<T>>
voidrewriteAndFetch(T original, QueryRewriteContext context, ActionListener<T> rewriteResponse, int iteration) Rewrites the given rewriteable and fetches pending async tasks for each round before rewriting again.
-
Field Details
-
MAX_REWRITE_ROUNDS
static final int MAX_REWRITE_ROUNDS- See Also:
-
-
Method Details
-
rewrite
Rewrites this instance based on the provided context. The returned objects will be the same instance as this if no changes during the rewrite were applied.- Throws:
IOException
-
rewrite
static <T extends Rewriteable<T>> T rewrite(T original, QueryRewriteContext context) throws IOException Rewrites the givenRewriteableinto its primitive form. Rewriteables that for instance fetch resources from remote hosts or can simplify / optimize itself should do their heavy lifting duringrewrite(QueryRewriteContext). This method rewrites the rewriteable until it doesn't change anymore.- Parameters:
original- the original rewriteable to rewritecontext- the rewrite context to use- Throws:
IOException- if anIOExceptionoccurs
-
rewrite
static <T extends Rewriteable<T>> T rewrite(T original, QueryRewriteContext context, boolean assertNoAsyncTasks) throws IOException Rewrites the givenRewriteableinto its primitive form. Rewriteables that for instance fetch resources from remote hosts or can simplify / optimize itself should do their heavy lifting duringrewriteAndFetch(Rewriteable, QueryRewriteContext, ActionListener)(QueryRewriteContext)}. This method rewrites the rewriteable until it doesn't change anymore.- Parameters:
original- the original rewriteable to rewritecontext- the rewrite context to useassertNoAsyncTasks- iftruethe rewrite will fail if there are any pending async tasks on the context after the rewrite. SeeQueryRewriteContext.executeAsyncActions(ActionListener)for details- Throws:
IOException- if anIOExceptionoccurs
-
rewriteAndFetch
static <T extends Rewriteable<T>> void rewriteAndFetch(T original, QueryRewriteContext context, ActionListener<T> rewriteResponse) Rewrites the given rewriteable and fetches pending async tasks for each round before rewriting again. -
rewriteAndFetch
static <T extends Rewriteable<T>> void rewriteAndFetch(T original, QueryRewriteContext context, ActionListener<T> rewriteResponse, int iteration) Rewrites the given rewriteable and fetches pending async tasks for each round before rewriting again. -
rewrite
static <T extends Rewriteable<T>> List<T> rewrite(List<T> rewritables, QueryRewriteContext context) throws IOException Rewrites each element of the list until it doesn't change and returns a new list iff there is at least one element of the list that changed during it's rewrite. Otherwise the given list instance is returned unchanged.- Throws:
IOException
-