Package org.elasticsearch.index.query
Interface Rewriteable<T>
- 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,IpRangeAggregationBuilder,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,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,TopHitsAggregationBuilder,TypeQueryBuilder,ValueCountAggregationBuilder,ValuesSourceAggregationBuilder,ValuesSourceAggregationBuilder.LeafOnly,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.rewrite(QueryRewriteContext ctx)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:
 - Constant Field Values
 
 
 - 
 - 
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 IOExceptionRewrites 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 IOExceptionRewrites 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 IOExceptionRewrites 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
 
 -