我正在寻找相当于以下查询的ElasticSearch -

时间:2015-11-05 16:45:54

标签: elasticsearch

SELECT sender
FROM julymonth
WHERE recipient IN ('x', 'y')
GROUP BY sender;

此处发件人和收件人是列名,而julymonth是表名。

1 个答案:

答案 0 :(得分:0)

对您的结构进行成像,这就是:

POST /julymonth/_search
{
  "query": {
    "filtered": {
      "filter": {
        "terms": {
          "recipient": [
            "x",
            "y"
          ]
        }
      }
    }
  },
  "aggs": {
    "senders": {
      "terms": {
        "field": "sender",
        "size": 0
      }
    }
  }
}
  1. 查询部分将按收件人过滤您的文档
  2. Aggs将根据您过滤的文档创建一个唯一的发件人列表