我只想用elasticsearch做以下请求.
在SQL中:
Select distinct(id) from my_table where userid = '20' or activity = '9';
Run Code Online (Sandbox Code Playgroud)
我只有 :
{
"query" : {
"bool" : {
"should" : [
{ "term" : { "userid" : "20" } },
{ "term" : { "activity" : "9" } }
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
Val*_*Val 23
你几乎就在那里,你只需要在查询中添加一个terms聚合
{
"query" : {
"bool" : {
"should" : [
{ "term" : { "userid" : "20" } },
{ "term" : { "activity" : "9" } }
]
}
},
"aggs":{
"unique_ids": {
"terms": {
"field": "id"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于上面的答案非常完美,如果您只想DISTNICT在某个字段上执行而不进行任何搜索等,那么只需使用aggs
这个SQL
SELECT DISTINCT FULL_NAME from users;
Run Code Online (Sandbox Code Playgroud)
相当于
POST users/_search
{
"aggs":{
"unique_names": {
"terms": {
"field": "FULL_NAME.keyword"
}
}
},
"_source": false
}
Run Code Online (Sandbox Code Playgroud)
我知道这个答案与问题并不直接匹配,但我相信它会对 ES 堆栈的新手有所帮助。
| 归档时间: |
|
| 查看次数: |
11879 次 |
| 最近记录: |