War*_*ore 6 aggregation elasticsearch
我是Elasticsearch的新手,我无法根据访问范围构建直方图.我甚至不确定是否可以通过在Elasticsearch中使用单个查询来创建此类图表,但我感觉可能通过管道聚合或可能是脚本聚合.
这是我正在使用的测试数据集:
PUT /test_histo
{ "settings": { "number_of_shards": 1 }}
PUT /test_histo/_mapping/visit
{
"properties": {
"user": {"type": "string" },
"datevisit": {"type": "date"},
"page": {"type": "string"}
}
}
POST test_histo/visit/_bulk
{"index":{"_index":"test_histo","_type":"visit"}}
{"user":"John","page":"home.html","datevisit":"2015-11-25"}
{"index":{"_index":"test_histo","_type":"visit"}}
{"user":"Jean","page":"productXX.hmtl","datevisit":"2015-11-25"}
{"index":{"_index":"test_histo","_type":"visit"}}
{"user":"Robert","page":"home.html","datevisit":"2015-11-25"}
{"index":{"_index":"test_histo","_type":"visit"}}
{"user":"Mary","page":"home.html","datevisit":"2015-11-25"}
{"index":{"_index":"test_histo","_type":"visit"}}
{"user":"Mary","page":"media_center.html","datevisit":"2015-11-25"}
{"index":{"_index":"test_histo","_type":"visit"}}
{"user":"John","page":"home.html","datevisit":"2015-11-25"}
{"index":{"_index":"test_histo","_type":"visit"}}
{"user":"John","page":"media_center.html","datevisit":"2015-11-26"}
Run Code Online (Sandbox Code Playgroud)
如果我们考虑范围[1,2 [,[2,3 [,[3,inf.[
预期结果应该是:
我所有努力找到显示客户访问频率的直方图至今仍未成功.我很乐意提供一些提示,技巧或想法来回答我的问题.
小智 0
看一下:
如果您想以精美的已固定 UI 方式显示它,请使用 Kibana。
像这样的查询:
GET _search
{
"query": {
"match_all": {}
},
{
"aggs" : {
"visits" : {
"date_histogram" : {
"field" : "datevisit",
"interval" : "month"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
应该给你一个直方图,我现在没有松紧带,所以我可能有一些粗手指的打字错误。
然后,您可以广告查询词以仅显示特定页面的直方图,您可以有一个聚合/页面或用户的外部聚合存储桶。
像这样的东西:
GET _search
{
"query": {
"match_all": {}
},
{
{
"aggs" : {
"users" : {
"terms" : {
"field" : "user",
},
"aggs" : {
"visits" : {
"date_histogram" : {
"field" : "datevisit",
"interval" : "month"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
343 次 |
| 最近记录: |