弹性搜索:拆分结果聚合子查询(热门命中聚合搜索)?

时间:2017-11-05 19:37:44

标签: elasticsearch

我们有字段“用户”的弹性搜索文件,我们建立了以下查询以获取[“用户”=“kimchy”]的1个文件和[“用户”=“弹性搜索”]的1个文件。

GET /_search
{
  "from": 0,
  "size": 0,
  "query": {
    "constant_score": {
      "filter": {
        "terms": {
          "user": ["kimchy","elasticsearch"]
        }
      }
    }
  },
  "aggs": {
    "users": {
      "terms": {
        "field": "user"
      },
      "aggs": {
        "sample": {
          "top_hits": {
            "size": 1
          }
        }
      }
    }
  }
}

这些文档中还有一个字段被命名为“目标”,它具有整数值。我们希望得到:

  1. 1个[“user”=“kimchy”]的文档,目标为> 10.
  2. 1个[“user”=“kimchy”]的文件,目标为< = 10
  3. 1个[“user”=“elasticsearch”]的文档,目标为> 10
  4. 1个[“user”=“elasticsearch”]的文档,目标为< = 10
  5. 一种方法是使用多次搜索执行此查询两次,第一次用于目标> 10,第二种用于目标< = 10。有没有更好的方法呢?

0 个答案:

没有答案