我是Elasticsearch的新手,我正在尝试获取所有具有相同移动类型的文档。我找不到相关问题而且目前卡住了。
curl -XPUT 'http://localhost:9200/sessions/session/1' \
-d '{"useragent": "1121212","mobile": "android", "browser": "mozilla", "device": "computer", "service-code": "1112"}'
编辑 -
我需要Elasticsearch
相当于以下内容 -
SELECT * FROM session s1, session s2
where s1.device == s2.device
答案 0 :(得分:0)
您要实现的目标是通过自我加入在字段上对文档进行简单分组。
类似的分组概念可以通过弹性搜索中的terms aggregation来实现。虽然此聚合仅返回组级别指标,如count,sum等。它不会返回单个记录。
但是,还有另一种聚合可以作为子聚合应用于术语聚合top-hits aggregations。
top_hits聚合器可以有效地用于对结果集进行分组 某些字段通过桶聚合器。一个或多个桶 聚合器确定结果集被切片的属性 成。
选项
from
- 您要获取的第一个结果的偏移量。size
- 每个桶返回的最高匹配匹配数的最大数量。默认情况下,返回前三个匹配的匹配。sort
- 应如何对最匹配的匹配进行排序。默认情况下,命中按主查询的分数排序。以下是示例查询
{
"query": {
"match_all": {}
},
"aggs": {
"top-mobiles": {
"terms": {
"field": "device"
},
"aggs": {
"top_device_hits": {
"top_hits": {}
}
}
}
}
}