ElasticSearch 2.3.3 java API操作二
點選(此處)摺疊或開啟
-
import org.elasticsearch.action.search.SearchResponse;
-
import org.elasticsearch.client.transport.TransportClient;
-
import org.elasticsearch.index.query.QueryBuilders;
-
import org.elasticsearch.search.aggregations.AggregationBuilders;
-
import org.elasticsearch.search.aggregations.bucket.filters.Filters;
-
import org.elasticsearch.search.aggregations.bucket.histogram.Histogram;
-
import org.elasticsearch.search.aggregations.metrics.stats.Stats;
-
import org.elasticsearch.search.aggregations.metrics.sum.Sum;
-
-
import com.sany.util.ESUtil;
-
-
public class EsAggregationTest {
-
/**
-
* histogram
-
* 統計每隔interval區間的數值
-
* 下面的返回結果 表示的含義 [10000~20000)的記錄有3條,這三條記錄的price總和
-
* 10000 3 37000.0
-
20000 3 65000.0
-
30000 1 30000.0
-
40000 0 0.0
-
50000 0 0.0
-
60000 0 0.0
-
70000 0 0.0
-
80000 1 80000.0
-
-
*/
-
public static void verticleBarAggs(String index,String type){
-
TransportClient client=ESUtil.getClient();
-
SearchResponse searchResponse = client.prepareSearch(index).setTypes(type).
-
addAggregation(AggregationBuilders.histogram("price_verticle").field("price").interval(10000)
-
.subAggregation(AggregationBuilders.sum("sumprice").field("price"))).get();
-
Histogram hist = searchResponse.getAggregations().get("price_verticle");
-
for (Histogram.Bucket bucket : hist.getBuckets()) {
-
Sum s=bucket.getAggregations().get("sumprice");
-
System.out.println(bucket.getKey()+"\t"+bucket.getDocCount()+"\t"+s.getValue());
-
}
-
client.close();
-
}
-
-
/**
-
* filter aggregation
-
* 根據過濾條件生成bucket, 統計bucket中資料總數,返回值
-
* 0 4 顏色為紅色的有4個,blue的有2個
-
1 2
-
*/
-
public static void filterAggregation(){
-
TransportClient client = ESUtil.getClient();
-
SearchResponse searchResponse = client.prepareSearch("cars").setTypes("transactions").addAggregation(
-
AggregationBuilders.filters("colorfilter")
-
.filter(QueryBuilders.termQuery("color", "red"))
-
.filter(QueryBuilders.termQuery("color", "blue"))).get();
-
Filters ff=searchResponse.getAggregations().get("colorfilter");
-
for (Filters.Bucket bucket : ff.getBuckets()) {
-
// System.out.println(bucket.getKey()+"\t"+bucket.getDocCount());
-
System.out.println(bucket.getKeyAsString()+"\t"+bucket.getDocCount());
-
}
-
}
-
-
/**
-
* stat,根據單一統計的一個最大,最小,平均值,總和
-
*/
-
public static void statAggregation(){
-
TransportClient client = ESUtil.getClient();
-
SearchResponse searchResponse = client.prepareSearch("cars").setTypes("transactions").addAggregation(AggregationBuilders.stats("price_stat").field("price")).get();
-
Stats sta= searchResponse.getAggregations().get("price_stat");
-
System.out.println("max value="+sta.getMax());
-
System.out.println("min value="+sta.getMin());
-
System.out.println("avg value="+sta.getAvg());
-
System.out.println("sum value="+sta.getSum());
-
client.close();
-
}
-
-
public static void main(String[] args) {
-
EsAggregationTest.filterAggregation();
-
}
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31347383/viewspace-2120936/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 Java API 操作 elasticsearchJavaAPIElasticsearch
- ElasticSearch—— Java APIElasticsearchJavaAPI
- Elasticsearch(二)——Rest APIElasticsearchRESTAPI
- ElasticSearch Java API使用ElasticsearchJavaAPI
- Elasticsearch 入門實戰(9)--Java API Client 使用二ElasticsearchJavaAPIclient
- elasticsearch(二)---基本資料操作Elasticsearch
- Docker 教程十三 JAVA 操作elasticsearchDockerJavaElasticsearch
- Java API操作ESJavaAPI
- ElasticSearch安裝及java Api使用ElasticsearchJavaAPI
- Java操作Elasticsearch 之 [Java High Level REST Clientedit]JavaElasticsearchRESTclient
- Elasticsearch 入門實戰(8)--REST API 使用二(Search API)ElasticsearchRESTAPI
- Elasticsearch學習系列二(基礎操作)Elasticsearch
- Elasticsearch Java High Level REST Client(Exists API)ElasticsearchJavaRESTclientAPI
- Elasticsearch Java High Level REST Client(Delete API)ElasticsearchJavaRESTclientdeleteAPI
- elasticsearch的java程式碼操作詳解ElasticsearchJava
- java內省api的操作JavaAPI
- Java API 操作Docker淺談JavaAPIDocker
- Azure Cosmos DB (二) SQL API 操作SQLAPI
- Elasticsearch Search APIElasticsearchAPI
- 2.3.3 Application MaintenanceAPPAINaN
- 在JAVA中將Elasticsearch索引載入到Lucene APIJavaElasticsearch索引API
- golang操作ElasticsearchGolangElasticsearch
- ElasticSearch - 基本操作Elasticsearch
- ElasticSearch基本操作Elasticsearch
- python操作elasticsearchPythonElasticsearch
- Java 8 Stream Api 中的 peek 操作JavaAPI
- HDFS 05 - HDFS 常用的 Java API 操作JavaAPI
- elasticsearch(八)---search apiElasticsearchAPI
- elasticsearch實戰三部曲之二:文件操作Elasticsearch
- elasticsearch 基礎操作Elasticsearch
- go操作elasticsearch示例GoElasticsearch
- Elasticsearch CRUD基本操作Elasticsearch
- ElasticSearch 文件及操作Elasticsearch
- ElasticSearch之基本用法APIElasticsearchAPI
- Elasticsearch cat api的用法ElasticsearchAPI
- ElasticSearch(二):MappingElasticsearchAPP
- 使用Java API操作zookeeper的acl許可權JavaAPI
- (2)Elasticsearch基本操作整理Elasticsearch
- PHP 操作 ElasticSearch7.8.1PHPElasticsearch