在SQL中,如果我有一个示例表my_site_visits,显示我的网站用户访问了哪些页面:
user_id,url
1,index.html
1,index.html
1,foobar.html
1,index.js
2,a.html
2,b.html
2,index.html
3,foo.js
3,foo.js
4,bar.js
然后我可以找到访问了多个唯一页面的用户,例如。
SELECT user_id, COUNT(*) unique_pages_visited
FROM (
SELECT DISTINCT user_id, url
FROM my_site_visits
)
GROUP BY user_id
HAVING unique_pages_visited > 1
结果:
user_id,unique_pages_visited
1,3
2,3
在Elastic中是否有一种方法可以做到这一点,假设我添加到Elastic中的JSON具有类似的形式,例如
{
"user_id": n,
"url": string,
[Various other Elastic headers]
}
还可以在Kibana中本地执行此操作,还是我需要编写脚本来生成Elastic查询?
答案 0 :(得分:0)
您可以尝试kibana的SQl转换查询
例如
POST _xpack / sql / translate
{
“ query”:“ SELECT * FROM IndexName WHERE id = 1”,
“ fetch_size”:10
}
在查询中添加索引名称,SQL查询和列名称(弹性搜索中名称应匹配)。
如果可以解决您的问题,请标记答案。谢谢