Elasticsearch之分析。
Elasticsearch有一個功能叫做聚合(aggregations),它允許你在資料上生成複雜的分析統計。它很像SQL中的GROUP BY,但是功能更強大。
舉個例子,讓我們找到所有職員中共同點(興趣愛好)是什麼:
GET /megacorp/employee/_search
{
"aggs" : {
"all_interests" : {
"terms" : { "field" : "interests" }
}
}
}
暫時先忽略語法只看查詢結果:
{
...
"hits" : {...},
"aggregations" : {
"all_interests" : {
"buckets" : [
{
"key" : "music",
"doc_count" : 2
},
{
"key" : "sports",
"doc_count" : 1
]
}
}
}
我們可以看到兩個職員對音樂有興趣,一個喜歡運動。這些資料並沒有被先計算好,它們是實時的從匹配查詢語句的文件中動態計算生成的。
找到所有姓“Smith”的人最大的共同點(興趣愛好)。
GET /megacorp/employee/_search
{
"query" : {
"match" : {
"last_name" : "smith"
}
},
"aggs" : {
"all_interests" : {
"terms" : {
"field" : "interests"
}
}
}
}
聚合也允許分級彙總。例如,讓我們統計每種興趣下職員的平均年齡:
GET /megacorp/employee/_search
{
"aggs" : {
"all_interests" : {
"terms" : {"field" : "interests" },
"aggs" : {
"avg_age" : {
"avg" : {"field" : "age" }
}
}
}
}
}
當然這次返回的聚合結果有些複雜,但仍然很容易理解:
...
"all_interests": {
"buckets": [
{
"key": "music",
"doc_count": 2,
"avg_age": {
"value": 28.5
}
},
{
"key": "sport",
"doc_count": 1,
"avg_age": {
"value": 25
}
},
]
}
該聚合結果比之前的聚合結果更加豐富。我們依然得到了興趣以及數量(指具有該興趣的員工人數)的列表,但是現在每個興趣額外擁有avg_age欄位來顯示具有該興趣員工的平均年齡。
相關文章
- 【DSL】Elasticsearch之Analyze(分析過程)Elasticsearch
- ElasticSearch 聚合分析Elasticsearch
- ElasticSearch聚合分析Elasticsearch
- Elasticsearch Analysis 分析器Elasticsearch
- 日誌分析平臺ELK之搜尋引擎Elasticsearch叢集Elasticsearch
- elasticsearch之metric聚合Elasticsearch
- elasticsearch之search templateElasticsearch
- Elasticsearch之叢集。Elasticsearch
- Elasticsearch之介紹Elasticsearch
- elasticsearch之拼音搜尋Elasticsearch
- ElasticSearch之基本用法APIElasticsearchAPI
- elasticsearch之exists查詢Elasticsearch
- ElasticSearch之網路配置Elasticsearch
- Elasticsearch 技術分析(九):Elasticsearch的使用和原理總結Elasticsearch
- Elasticsearch聚合學習之五:排序結果不準的問題分析Elasticsearch排序
- Elasticsearch 資料寫入原理分析Elasticsearch
- ElasticSearch之ICU分詞器Elasticsearch分詞
- elasticsearch bucket 之rare terms聚合Elasticsearch
- elasticsearch高亮之詞項向量Elasticsearch
- ElasticSearch小操之Marvel,SenseElasticsearch
- Elasticsearch中URI Search和RequestBody Search分析Elasticsearch
- Elasticsearch核心技術(四):索引原理分析Elasticsearch索引
- ElasticSearch 簡單的 搜尋 聚合 分析Elasticsearch
- 【Elasticsearch學習】之基礎概念Elasticsearch
- 實踐003-elasticsearch之analyzerElasticsearch
- elasticsearch之Java呼叫原生程式碼ElasticsearchJava
- 全量同步Elasticsearch方案之CanalElasticsearch
- 全量同步 Elasticsearch 方案之 CanalElasticsearch
- elasticsearch 聚合之 date_histogram 聚合ElasticsearchHistogram
- elasticsearch 之 histogram 直方圖聚合ElasticsearchHistogram直方圖
- ElasticSearch之叢集中的節點Elasticsearch
- javaAPI實現elasticsearch5.5.2的聚合分析JavaAPIElasticsearchH5
- ELK 日誌分析系統 ----------- 部署ElasticSearch群集Elasticsearch
- Elasticsearch——分散式文件系統之documentElasticsearch分散式
- Elasticsearch 之 Filter 與 Query 有啥不同?ElasticsearchFilter
- elasticsearch高亮之highlight原理Elasticsearch
- elasticsearch之單請求多查詢Elasticsearch
- ElasticSearch學習之——基本的文件CURDElasticsearch