use of org.elasticsearch.search.aggregations.pipeline.movavg.MovAvgPipelineAggregationBuilder in project elasticsearch by elastic.
the class MovAvgTests method testDefaultParsing.
public void testDefaultParsing() throws Exception {
MovAvgPipelineAggregationBuilder expected = new MovAvgPipelineAggregationBuilder("commits_moving_avg", "commits");
String json = "{" + " \"commits_moving_avg\": {" + " \"moving_avg\": {" + " \"buckets_path\": \"commits\"" + " }" + " }" + "}";
PipelineAggregationBuilder newAgg = parse(createParser(JsonXContent.jsonXContent, json));
assertNotSame(newAgg, expected);
assertEquals(expected, newAgg);
assertEquals(expected.hashCode(), newAgg.hashCode());
}
use of org.elasticsearch.search.aggregations.pipeline.movavg.MovAvgPipelineAggregationBuilder in project elasticsearch by elastic.
the class SearchModule method registerPipelineAggregations.
private void registerPipelineAggregations(List<SearchPlugin> plugins) {
registerPipelineAggregation(new PipelineAggregationSpec(DerivativePipelineAggregationBuilder.NAME, DerivativePipelineAggregationBuilder::new, DerivativePipelineAggregator::new, DerivativePipelineAggregationBuilder::parse).addResultReader(InternalDerivative::new));
registerPipelineAggregation(new PipelineAggregationSpec(MaxBucketPipelineAggregationBuilder.NAME, MaxBucketPipelineAggregationBuilder::new, MaxBucketPipelineAggregator::new, MaxBucketPipelineAggregationBuilder.PARSER).addResultReader(InternalBucketMetricValue.NAME, InternalBucketMetricValue::new));
registerPipelineAggregation(new PipelineAggregationSpec(MinBucketPipelineAggregationBuilder.NAME, MinBucketPipelineAggregationBuilder::new, MinBucketPipelineAggregator::new, MinBucketPipelineAggregationBuilder.PARSER));
registerPipelineAggregation(new PipelineAggregationSpec(AvgBucketPipelineAggregationBuilder.NAME, AvgBucketPipelineAggregationBuilder::new, AvgBucketPipelineAggregator::new, AvgBucketPipelineAggregationBuilder.PARSER).addResultReader(InternalSimpleValue.NAME, InternalSimpleValue::new));
registerPipelineAggregation(new PipelineAggregationSpec(SumBucketPipelineAggregationBuilder.NAME, SumBucketPipelineAggregationBuilder::new, SumBucketPipelineAggregator::new, SumBucketPipelineAggregationBuilder.PARSER));
registerPipelineAggregation(new PipelineAggregationSpec(StatsBucketPipelineAggregationBuilder.NAME, StatsBucketPipelineAggregationBuilder::new, StatsBucketPipelineAggregator::new, StatsBucketPipelineAggregationBuilder.PARSER).addResultReader(InternalStatsBucket::new));
registerPipelineAggregation(new PipelineAggregationSpec(ExtendedStatsBucketPipelineAggregationBuilder.NAME, ExtendedStatsBucketPipelineAggregationBuilder::new, ExtendedStatsBucketPipelineAggregator::new, new ExtendedStatsBucketParser()).addResultReader(InternalExtendedStatsBucket::new));
registerPipelineAggregation(new PipelineAggregationSpec(PercentilesBucketPipelineAggregationBuilder.NAME, PercentilesBucketPipelineAggregationBuilder::new, PercentilesBucketPipelineAggregator::new, PercentilesBucketPipelineAggregationBuilder.PARSER).addResultReader(InternalPercentilesBucket::new));
registerPipelineAggregation(new PipelineAggregationSpec(MovAvgPipelineAggregationBuilder.NAME, MovAvgPipelineAggregationBuilder::new, MovAvgPipelineAggregator::new, (n, c) -> MovAvgPipelineAggregationBuilder.parse(movingAverageModelParserRegistry, n, c)));
registerPipelineAggregation(new PipelineAggregationSpec(CumulativeSumPipelineAggregationBuilder.NAME, CumulativeSumPipelineAggregationBuilder::new, CumulativeSumPipelineAggregator::new, CumulativeSumPipelineAggregationBuilder::parse));
registerPipelineAggregation(new PipelineAggregationSpec(BucketScriptPipelineAggregationBuilder.NAME, BucketScriptPipelineAggregationBuilder::new, BucketScriptPipelineAggregator::new, BucketScriptPipelineAggregationBuilder::parse));
registerPipelineAggregation(new PipelineAggregationSpec(BucketSelectorPipelineAggregationBuilder.NAME, BucketSelectorPipelineAggregationBuilder::new, BucketSelectorPipelineAggregator::new, BucketSelectorPipelineAggregationBuilder::parse));
registerPipelineAggregation(new PipelineAggregationSpec(SerialDiffPipelineAggregationBuilder.NAME, SerialDiffPipelineAggregationBuilder::new, SerialDiffPipelineAggregator::new, SerialDiffPipelineAggregationBuilder::parse));
registerFromPlugin(plugins, SearchPlugin::getPipelineAggregations, this::registerPipelineAggregation);
}
use of org.elasticsearch.search.aggregations.pipeline.movavg.MovAvgPipelineAggregationBuilder in project elasticsearch by elastic.
the class MovAvgTests method createTestAggregatorFactory.
@Override
protected MovAvgPipelineAggregationBuilder createTestAggregatorFactory() {
String name = randomAsciiOfLengthBetween(3, 20);
String bucketsPath = randomAsciiOfLengthBetween(3, 20);
MovAvgPipelineAggregationBuilder factory = new MovAvgPipelineAggregationBuilder(name, bucketsPath);
if (randomBoolean()) {
factory.format(randomAsciiOfLengthBetween(1, 10));
}
if (randomBoolean()) {
factory.gapPolicy(randomFrom(GapPolicy.values()));
}
if (randomBoolean()) {
switch(randomInt(4)) {
case 0:
factory.modelBuilder(new SimpleModel.SimpleModelBuilder());
factory.window(randomIntBetween(1, 100));
break;
case 1:
factory.modelBuilder(new LinearModel.LinearModelBuilder());
factory.window(randomIntBetween(1, 100));
break;
case 2:
if (randomBoolean()) {
factory.modelBuilder(new EwmaModel.EWMAModelBuilder());
factory.window(randomIntBetween(1, 100));
} else {
factory.modelBuilder(new EwmaModel.EWMAModelBuilder().alpha(randomDouble()));
factory.window(randomIntBetween(1, 100));
}
break;
case 3:
if (randomBoolean()) {
factory.modelBuilder(new HoltLinearModel.HoltLinearModelBuilder());
factory.window(randomIntBetween(1, 100));
} else {
factory.modelBuilder(new HoltLinearModel.HoltLinearModelBuilder().alpha(randomDouble()).beta(randomDouble()));
factory.window(randomIntBetween(1, 100));
}
break;
case 4:
default:
if (randomBoolean()) {
factory.modelBuilder(new HoltWintersModel.HoltWintersModelBuilder());
factory.window(randomIntBetween(2, 100));
} else {
int period = randomIntBetween(1, 100);
factory.modelBuilder(new HoltWintersModel.HoltWintersModelBuilder().alpha(randomDouble()).beta(randomDouble()).gamma(randomDouble()).period(period).seasonalityType(randomFrom(SeasonalityType.values())).pad(randomBoolean()));
factory.window(randomIntBetween(2 * period, 200 * period));
}
break;
}
}
factory.predict(randomIntBetween(1, 50));
if (factory.model().canBeMinimized() && randomBoolean()) {
factory.minimize(randomBoolean());
}
return factory;
}
Aggregations