Commit 80594e85 authored by Noel Alonso's avatar Noel Alonso
Browse files

Crea repositorios base para datos de timeseries

parent a84dc1d2
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
package es.redmic.elasticsearchlib.timeseries.repository;

import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder;
import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;

public interface IBaseTimeSeriesESRepository {

	static String[] INDEX = { "timeseries" };
	static String TYPE = "_doc";

	String defaultField = "value";

	String dateTimeField = "date";

	int minDocCount = 0;

	default DateHistogramAggregationBuilder getDateHistogramAggregation(DateHistogramInterval dateHistogramInterval) {

		return AggregationBuilders.dateHistogram("dateHistogram").field(dateTimeField)
				.dateHistogramInterval(dateHistogramInterval).minDocCount(minDocCount);
	}
}
+20 −0
Original line number Diff line number Diff line
package es.redmic.elasticsearchlib.timeseries.repository;

import org.joda.time.format.DateTimeFormat;

import es.redmic.elasticsearchlib.data.repository.RDataESRepository;
import es.redmic.models.es.common.model.BaseTimeDataAbstractES;
import es.redmic.models.es.common.query.dto.DataQueryDTO;

public abstract class RTimeSeriesESRepository<TModel extends BaseTimeDataAbstractES, TQueryDTO extends DataQueryDTO>
		extends RDataESRepository<TModel, TQueryDTO> implements IBaseTimeSeriesESRepository {

	public RTimeSeriesESRepository() {
		super(IBaseTimeSeriesESRepository.INDEX, IBaseTimeSeriesESRepository.TYPE, true);
	}

	@Override
	protected String getIndex(final TModel modelToIndex) {
		return getIndex()[0] + "-" + modelToIndex.getDate().toString(DateTimeFormat.forPattern("yyyy-MM-dd"));
	}
}
+20 −0
Original line number Diff line number Diff line
package es.redmic.elasticsearchlib.timeseries.repository;

import org.joda.time.format.DateTimeFormat;

import es.redmic.elasticsearchlib.data.repository.RWDataESRepository;
import es.redmic.models.es.common.model.BaseTimeDataAbstractES;
import es.redmic.models.es.common.query.dto.DataQueryDTO;

public abstract class RWTimeSeriesESRepository<TModel extends BaseTimeDataAbstractES, TQueryDTO extends DataQueryDTO>
		extends RWDataESRepository<TModel, TQueryDTO> implements IBaseTimeSeriesESRepository {

	public RWTimeSeriesESRepository() {
		super(IBaseTimeSeriesESRepository.INDEX, IBaseTimeSeriesESRepository.TYPE, true);
	}

	@Override
	protected String getIndex(final TModel modelToIndex) {
		return getIndex()[0] + "-" + modelToIndex.getDate().toString(DateTimeFormat.forPattern("yyyy-MM-dd"));
	}
}
 No newline at end of file