use of org.elasticsearch.search.aggregations.bucket.range.Range in project elasticsearch by elastic.
the class IpRangeIT method testMultiValuedField.
public void testMultiValuedField() {
SearchResponse rsp = client().prepareSearch("idx").addAggregation(AggregationBuilders.ipRange("my_range").field("ips").addUnboundedTo("192.168.1.0").addRange("192.168.1.0", "192.168.1.10").addUnboundedFrom("192.168.1.10")).get();
assertSearchResponse(rsp);
Range range = rsp.getAggregations().get("my_range");
assertEquals(3, range.getBuckets().size());
Range.Bucket bucket1 = range.getBuckets().get(0);
assertNull(bucket1.getFrom());
assertEquals("192.168.1.0", bucket1.getTo());
assertEquals(1, bucket1.getDocCount());
Range.Bucket bucket2 = range.getBuckets().get(1);
assertEquals("192.168.1.0", bucket2.getFrom());
assertEquals("192.168.1.10", bucket2.getTo());
assertEquals(1, bucket2.getDocCount());
Range.Bucket bucket3 = range.getBuckets().get(2);
assertEquals("192.168.1.10", bucket3.getFrom());
assertNull(bucket3.getTo());
assertEquals(2, bucket3.getDocCount());
}
use of org.elasticsearch.search.aggregations.bucket.range.Range in project elasticsearch by elastic.
the class IpRangeIT method testPartiallyUnmapped.
public void testPartiallyUnmapped() {
SearchResponse rsp = client().prepareSearch("idx", "idx_unmapped").addAggregation(AggregationBuilders.ipRange("my_range").field("ip").addUnboundedTo("192.168.1.0").addRange("192.168.1.0", "192.168.1.10").addUnboundedFrom("192.168.1.10")).get();
assertSearchResponse(rsp);
Range range = rsp.getAggregations().get("my_range");
assertEquals(3, range.getBuckets().size());
Range.Bucket bucket1 = range.getBuckets().get(0);
assertNull(bucket1.getFrom());
assertEquals("192.168.1.0", bucket1.getTo());
assertEquals(0, bucket1.getDocCount());
Range.Bucket bucket2 = range.getBuckets().get(1);
assertEquals("192.168.1.0", bucket2.getFrom());
assertEquals("192.168.1.10", bucket2.getTo());
assertEquals(1, bucket2.getDocCount());
Range.Bucket bucket3 = range.getBuckets().get(2);
assertEquals("192.168.1.10", bucket3.getFrom());
assertNull(bucket3.getTo());
assertEquals(2, bucket3.getDocCount());
}
use of org.elasticsearch.search.aggregations.bucket.range.Range in project elasticsearch by elastic.
the class IpRangeIT method testIpMask.
public void testIpMask() {
SearchResponse rsp = client().prepareSearch("idx").addAggregation(AggregationBuilders.ipRange("my_range").field("ips").addMaskRange("::/0").addMaskRange("0.0.0.0/0").addMaskRange("2001:db8::/64")).get();
assertSearchResponse(rsp);
Range range = rsp.getAggregations().get("my_range");
assertEquals(3, range.getBuckets().size());
Range.Bucket bucket1 = range.getBuckets().get(0);
assertEquals("::/0", bucket1.getKey());
assertEquals(3, bucket1.getDocCount());
Range.Bucket bucket2 = range.getBuckets().get(1);
assertEquals("0.0.0.0/0", bucket2.getKey());
assertEquals(2, bucket2.getDocCount());
Range.Bucket bucket3 = range.getBuckets().get(2);
assertEquals("2001:db8::/64", bucket3.getKey());
assertEquals(1, bucket3.getDocCount());
}
use of org.elasticsearch.search.aggregations.bucket.range.Range in project elasticsearch by elastic.
the class IpRangeIT method testSingleValuedField.
public void testSingleValuedField() {
SearchResponse rsp = client().prepareSearch("idx").addAggregation(AggregationBuilders.ipRange("my_range").field("ip").addUnboundedTo("192.168.1.0").addRange("192.168.1.0", "192.168.1.10").addUnboundedFrom("192.168.1.10")).get();
assertSearchResponse(rsp);
Range range = rsp.getAggregations().get("my_range");
assertEquals(3, range.getBuckets().size());
Range.Bucket bucket1 = range.getBuckets().get(0);
assertNull(bucket1.getFrom());
assertEquals("192.168.1.0", bucket1.getTo());
assertEquals(0, bucket1.getDocCount());
Range.Bucket bucket2 = range.getBuckets().get(1);
assertEquals("192.168.1.0", bucket2.getFrom());
assertEquals("192.168.1.10", bucket2.getTo());
assertEquals(1, bucket2.getDocCount());
Range.Bucket bucket3 = range.getBuckets().get(2);
assertEquals("192.168.1.10", bucket3.getFrom());
assertNull(bucket3.getTo());
assertEquals(2, bucket3.getDocCount());
}
use of org.elasticsearch.search.aggregations.bucket.range.Range in project elasticsearch by elastic.
the class GeoDistanceIT method testGeoDistanceAggregation.
public void testGeoDistanceAggregation() throws IOException {
client().prepareIndex("test", "type1", "1").setSource(jsonBuilder().startObject().field("name", "TestPosition").startObject("location").field("lat", src_lat).field("lon", src_lon).endObject().endObject()).get();
refresh();
SearchRequestBuilder search = client().prepareSearch("test");
String name = "TestPosition";
search.setQuery(QueryBuilders.matchAllQuery()).setTypes("type1").addAggregation(AggregationBuilders.geoDistance(name, new GeoPoint(tgt_lat, tgt_lon)).field("location").unit(DistanceUnit.MILES).addRange(0, 25000));
// no hits please
search.setSize(0);
SearchResponse response = search.get();
Aggregations aggregations = response.getAggregations();
assertNotNull(aggregations);
InternalGeoDistance geoDistance = aggregations.get(name);
assertNotNull(geoDistance);
List<? extends Range.Bucket> buckets = ((Range) geoDistance).getBuckets();
assertNotNull("Buckets should not be null", buckets);
assertEquals("Unexpected number of buckets", 1, buckets.size());
assertEquals("Unexpected doc count for geo distance", 1, buckets.get(0).getDocCount());
}
Aggregations