本文整理汇总了Java中org.elasticsearch.search.aggregations.Aggregation.getName方法的典型用法代码示例。如果您正苦于以下问题:Java Aggregation.getName方法的具体用法?Java Aggregation.getName怎么用?Java Aggregation.getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.elasticsearch.search.aggregations.Aggregation
的用法示例。
在下文中一共展示了Aggregation.getName方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: dfsAggregations
import org.elasticsearch.search.aggregations.Aggregation; //导入方法依赖的package包/类
/**
* Parse an aggregation result based on one or more aggregated terms
* @param terms
* @param rs
* @param row
* @throws SQLException
*/
private void dfsAggregations(Terms terms, ESResultSet rs, List<Object> row) throws SQLException{
List<Object> currentRow = Utils.clone(row);
String columnName = terms.getName();
if(!rs.getHeading().hasLabel(columnName)) throw new SQLException("Unable to identify column for aggregation named "+columnName);
Column aggCol = rs.getHeading().getColumnByLabel(columnName);
for(Terms.Bucket bucket : terms.getBuckets()){
boolean metricAggs = false;
List<Aggregation> aggs = bucket.getAggregations().asList();
if(aggs.size() == 0){
currentRow.set(aggCol.getIndex(), bucket.getKey());
metricAggs = true;
}else for(Aggregation agg : bucket.getAggregations().asList()){
if(agg instanceof Terms){
currentRow.set(aggCol.getIndex(), bucket.getKey());
dfsAggregations((Terms)agg, rs, currentRow);
}else{
if(metricAggs == false){
currentRow.set(aggCol.getIndex(), bucket.getKey());
metricAggs = true;
}
String metricName = agg.getName();
if(!rs.getHeading().hasLabel(metricName)) throw new SQLException("Unable to identify column for aggregation named "+metricName);
Column metricCol = rs.getHeading().getColumnByLabel(metricName);
currentRow.set(metricCol.getIndex(), agg.getProperty("value"));
}
}
if(metricAggs){
rs.add(currentRow);
currentRow = Utils.clone(row);
}
currentRow = Utils.clone(row);
}
}
示例2: handleNumericMetricAggregation
import org.elasticsearch.search.aggregations.Aggregation; //导入方法依赖的package包/类
private void handleNumericMetricAggregation(List<String> header, List<String> line, Aggregation aggregation) throws CsvExtractorException {
String name = aggregation.getName();
if(aggregation instanceof NumericMetricsAggregation.SingleValue){
if(!header.contains(name)){
header.add(name);
}
line.add(((NumericMetricsAggregation.SingleValue) aggregation).getValueAsString());
}
//todo:Numeric MultiValue - Stats,ExtendedStats,Percentile...
else if(aggregation instanceof NumericMetricsAggregation.MultiValue){
if(aggregation instanceof Stats) {
String[] statsHeaders = new String[]{"count", "sum", "avg", "min", "max"};
boolean isExtendedStats = aggregation instanceof ExtendedStats;
if(isExtendedStats){
String[] extendedHeaders = new String[]{"sumOfSquares", "variance", "stdDeviation"};
statsHeaders = Util.concatStringsArrays(statsHeaders,extendedHeaders);
}
mergeHeadersWithPrefix(header, name, statsHeaders);
Stats stats = (Stats) aggregation;
line.add(stats.getCountAsString());
line.add(stats.getSumAsString());
line.add(stats.getAvgAsString());
line.add(stats.getMinAsString());
line.add(stats.getMaxAsString());
if(isExtendedStats){
ExtendedStats extendedStats = (ExtendedStats) aggregation;
line.add(extendedStats.getSumOfSquaresAsString());
line.add(extendedStats.getVarianceAsString());
line.add(extendedStats.getStdDeviationAsString());
}
}
else if( aggregation instanceof Percentiles){
String[] percentileHeaders = new String[]{"1.0", "5.0", "25.0", "50.0", "75.0", "95.0", "99.0"};
mergeHeadersWithPrefix(header, name, percentileHeaders);
Percentiles percentiles = (Percentiles) aggregation;
line.add(percentiles.percentileAsString(1.0));
line.add(percentiles.percentileAsString(5.0));
line.add(percentiles.percentileAsString(25.0));
line.add(percentiles.percentileAsString(50.0));
line.add(percentiles.percentileAsString(75));
line.add(percentiles.percentileAsString(95.0));
line.add(percentiles.percentileAsString(99.0));
}
else {
throw new CsvExtractorException("unknown NumericMetricsAggregation.MultiValue:" + aggregation.getClass());
}
}
else {
throw new CsvExtractorException("unknown NumericMetricsAggregation" + aggregation.getClass());
}
}
示例3: handleNumericMetricAggregation
import org.elasticsearch.search.aggregations.Aggregation; //导入方法依赖的package包/类
private void handleNumericMetricAggregation(List<String> header, List<Object> line, Aggregation aggregation) throws ObjectResultsExtractException {
String name = aggregation.getName();
if (aggregation instanceof NumericMetricsAggregation.SingleValue) {
if (!header.contains(name)) {
header.add(name);
}
line.add(((NumericMetricsAggregation.SingleValue) aggregation).value());
}
//todo:Numeric MultiValue - Stats,ExtendedStats,Percentile...
else if (aggregation instanceof NumericMetricsAggregation.MultiValue) {
if (aggregation instanceof Stats) {
String[] statsHeaders = new String[]{"count", "sum", "avg", "min", "max"};
boolean isExtendedStats = aggregation instanceof ExtendedStats;
if (isExtendedStats) {
String[] extendedHeaders = new String[]{"sumOfSquares", "variance", "stdDeviation"};
statsHeaders = Util.concatStringsArrays(statsHeaders, extendedHeaders);
}
mergeHeadersWithPrefix(header, name, statsHeaders);
Stats stats = (Stats) aggregation;
line.add(stats.getCount());
line.add(stats.getSum());
line.add(stats.getAvg());
line.add(stats.getMin());
line.add(stats.getMax());
if (isExtendedStats) {
ExtendedStats extendedStats = (ExtendedStats) aggregation;
line.add(extendedStats.getSumOfSquares());
line.add(extendedStats.getVariance());
line.add(extendedStats.getStdDeviation());
}
} else if (aggregation instanceof Percentiles) {
String[] percentileHeaders = new String[]{"1.0", "5.0", "25.0", "50.0", "75.0", "95.0", "99.0"};
mergeHeadersWithPrefix(header, name, percentileHeaders);
Percentiles percentiles = (Percentiles) aggregation;
line.add(percentiles.percentile(1.0));
line.add(percentiles.percentile(5.0));
line.add(percentiles.percentile(25.0));
line.add(percentiles.percentile(50.0));
line.add(percentiles.percentile(75));
line.add(percentiles.percentile(95.0));
line.add(percentiles.percentile(99.0));
} else {
throw new ObjectResultsExtractException("unknown NumericMetricsAggregation.MultiValue:" + aggregation.getClass());
}
} else {
throw new ObjectResultsExtractException("unknown NumericMetricsAggregation" + aggregation.getClass());
}
}
示例4: handleNumericMetricAggregation
import org.elasticsearch.search.aggregations.Aggregation; //导入方法依赖的package包/类
private void handleNumericMetricAggregation(List<String> header, List<String> line, Aggregation aggregation) throws CsvExtractorException {
String name = aggregation.getName();
if(aggregation instanceof NumericMetricsAggregation.SingleValue){
if(!header.contains(name)){
header.add(name);
}
NumericMetricsAggregation.SingleValue agg = (NumericMetricsAggregation.SingleValue) aggregation;
line.add(!Double.isInfinite(agg.value()) ? agg.getValueAsString() : "null");
}
//todo:Numeric MultiValue - Stats,ExtendedStats,Percentile...
else if(aggregation instanceof NumericMetricsAggregation.MultiValue){
if(aggregation instanceof Stats) {
String[] statsHeaders = new String[]{"count", "sum", "avg", "min", "max"};
boolean isExtendedStats = aggregation instanceof ExtendedStats;
if(isExtendedStats){
String[] extendedHeaders = new String[]{"sumOfSquares", "variance", "stdDeviation"};
statsHeaders = Util.concatStringsArrays(statsHeaders,extendedHeaders);
}
mergeHeadersWithPrefix(header, name, statsHeaders);
Stats stats = (Stats) aggregation;
line.add(String.valueOf(stats.getCount()));
line.add(stats.getSumAsString());
line.add(stats.getAvgAsString());
line.add(stats.getMinAsString());
line.add(stats.getMaxAsString());
if(isExtendedStats){
ExtendedStats extendedStats = (ExtendedStats) aggregation;
line.add(extendedStats.getSumOfSquaresAsString());
line.add(extendedStats.getVarianceAsString());
line.add(extendedStats.getStdDeviationAsString());
}
}
else if( aggregation instanceof Percentiles){
String[] percentileHeaders = new String[]{"1.0", "5.0", "25.0", "50.0", "75.0", "95.0", "99.0"};
mergeHeadersWithPrefix(header, name, percentileHeaders);
Percentiles percentiles = (Percentiles) aggregation;
line.add(percentiles.percentileAsString(1.0));
line.add(percentiles.percentileAsString(5.0));
line.add(percentiles.percentileAsString(25.0));
line.add(percentiles.percentileAsString(50.0));
line.add(percentiles.percentileAsString(75));
line.add(percentiles.percentileAsString(95.0));
line.add(percentiles.percentileAsString(99.0));
}
else {
throw new CsvExtractorException("unknown NumericMetricsAggregation.MultiValue:" + aggregation.getClass());
}
}
else {
throw new CsvExtractorException("unknown NumericMetricsAggregation" + aggregation.getClass());
}
}
示例5: assertTop10of50OneShardNestedAggregations
import org.elasticsearch.search.aggregations.Aggregation; //导入方法依赖的package包/类
@Test
public void assertTop10of50OneShardNestedAggregations() {
client.admin().indices().prepareCreate("topk-4").setSettings(ImmutableSettings.settingsBuilder().put("index.number_of_shards", 1)).execute().actionGet();
double sum = 0;
for (int i = 0; i < 50; ++i) { // 50 values
client.prepareIndex("topk-4", "type0", "doc" + i).setSource("{ \"field0\": \"foo" + i + "\", \"field1\":" + i +" }").setRefresh(true).execute().actionGet();
}
// foo0 x 50
for (int i = 50; i < 100; ++i) {
client.prepareIndex("topk-4", "type0", "doc" + i).setSource("{ \"field0\": \"foo0\", \"field1\":" + i +" }").setRefresh(true).execute().actionGet();
sum += i;
}
SearchResponse searchResponse = client.prepareSearch("topk-4")
.setQuery(matchAllQuery())
.addAggregation(new TopKBuilder("topk").field("field0").size(10)
.subAggregation(new AvgBuilder("avg").field("field1"))
.subAggregation(new MaxBuilder("max").field("field1"))
)
.execute().actionGet();
assertEquals(100, searchResponse.getHits().getTotalHits());
TopK topk = searchResponse.getAggregations().get("topk");
assertNotNull(topk);
List<TopK.Bucket> buckets = new ArrayList<>(topk.getBuckets());
assertEquals(10, buckets.size());
assertEquals("foo0", buckets.get(0).getKey());
assertEquals(51, buckets.get(0).getDocCount());
assertEquals(2, buckets.get(0).getAggregations().asList().size());
for (Aggregation agg : buckets.get(0).getAggregations()) {
switch (agg.getName()) {
case "avg":
assertEquals(sum / 51, ((Avg) agg).getValue(), 0.01);
break;
case "max":
assertEquals(99.0, ((Max) agg).getValue(), 0.001);
break;
default:
assertTrue(false);
}
}
}
示例6: assertTop10of50TwoShardNestedAggregations
import org.elasticsearch.search.aggregations.Aggregation; //导入方法依赖的package包/类
@Test
public void assertTop10of50TwoShardNestedAggregations() {
client.admin().indices().prepareCreate("topk-5").setSettings(ImmutableSettings.settingsBuilder().put("index.number_of_shards", 2)).execute().actionGet();
double sum = 0;
for (int i = 0; i < 50; ++i) { // 50 values
client.prepareIndex("topk-5", "type0", "doc" + i).setSource("{ \"field0\": \"foo" + i + "\", \"field1\":" + i +" }").setRefresh(true).execute().actionGet();
}
// foo0 x 50
for (int i = 50; i < 100; ++i) {
client.prepareIndex("topk-5", "type0", "doc" + i).setSource("{ \"field0\": \"foo0\", \"field1\":" + i +" }").setRefresh(true).execute().actionGet();
sum += i;
}
SearchResponse searchResponse = client.prepareSearch("topk-5")
.setQuery(matchAllQuery())
.addAggregation(new TopKBuilder("topk").field("field0").size(10)
.subAggregation(new AvgBuilder("avg").field("field1"))
.subAggregation(new MaxBuilder("max").field("field1"))
)
.execute().actionGet();
assertEquals(100, searchResponse.getHits().getTotalHits());
TopK topk = searchResponse.getAggregations().get("topk");
assertNotNull(topk);
List<TopK.Bucket> buckets = new ArrayList<>(topk.getBuckets());
assertEquals(10, buckets.size());
assertEquals("foo0", buckets.get(0).getKey());
assertEquals(51, buckets.get(0).getDocCount());
assertEquals(2, buckets.get(0).getAggregations().asList().size());
for (Aggregation agg : buckets.get(0).getAggregations()) {
switch (agg.getName()) {
case "avg":
assertEquals(sum / 51, ((Avg) agg).getValue(), 0.01);
break;
case "max":
assertEquals(99.0, ((Max) agg).getValue(), 0.001);
break;
default:
assertTrue(false);
}
}
}
示例7: assertTop10of50TwoShardNestedAggregationsStress
import org.elasticsearch.search.aggregations.Aggregation; //导入方法依赖的package包/类
@Test
public void assertTop10of50TwoShardNestedAggregationsStress() {
client.admin().indices().prepareCreate("topk-6").setSettings(ImmutableSettings.settingsBuilder().put("index.number_of_shards", 4)).execute().actionGet();
final int N = 30000;
double sum = 0;
int n = 0;
int max = Integer.MIN_VALUE;
Random r = new Random();
for (int i = 0; i < N; ++i) {
int v = r.nextInt();
if (i % 7 == 0) {
sum += v;
++n;
if (v > max) {
max = v;
}
}
client.prepareIndex("topk-6", "type0", "doc" + i).setSource("{ \"field0\": \"foo" + (i % 7 == 0 ? "bar" : String.valueOf(i)) + "\", \"field1\":" + v +" }").setRefresh(i == N - 1).execute().actionGet();
}
try { Thread.sleep(2000); } catch (InterruptedException e) {} // FIXME: wait until all docs are searchable
SearchResponse searchResponse = client.prepareSearch("topk-6")
.setQuery(matchAllQuery())
.addAggregation(new TopKBuilder("topk").field("field0").size(10)
.subAggregation(new AvgBuilder("avg").field("field1"))
.subAggregation(new MaxBuilder("max").field("field1"))
)
.execute().actionGet();
assertEquals(N, searchResponse.getHits().getTotalHits());
TopK topk = searchResponse.getAggregations().get("topk");
assertNotNull(topk);
List<TopK.Bucket> buckets = new ArrayList<>(topk.getBuckets());
assertEquals(10, buckets.size());
assertEquals("foobar", buckets.get(0).getKey());
assertEquals(n, buckets.get(0).getDocCount());
assertEquals(2, buckets.get(0).getAggregations().asList().size());
for (Aggregation agg : buckets.get(0).getAggregations()) {
switch (agg.getName()) {
case "avg":
assertEquals(sum / n, ((Avg) agg).getValue(), 0.01);
break;
case "max":
assertEquals((double) max, ((Max) agg).getValue(), 0.001);
break;
default:
assertTrue(false);
}
}
}