elasticsearch 弹性搜索查询,返回每个类别的前三名,elasticsearch,search,types,elasticsearch,Search,Types" /> elasticsearch 弹性搜索查询,返回每个类别的前三名,elasticsearch,search,types,elasticsearch,Search,Types" />

elasticsearch 弹性搜索查询,返回每个类别的前三名

elasticsearch 弹性搜索查询,返回每个类别的前三名,elasticsearch,search,types,elasticsearch,Search,Types,我想写一个弹性查询,它应该返回两位作者的前三本书,西德尼·谢尔顿和约翰·格雷舍姆说 该文档包含id、标题、作者、无拷贝、发行日期等字段 我想在单个查询中完成这一点,而不是分别为Sidney Sheldon和John Gresham查询两次 非常感谢您的帮助。首先筛选作者,只针对您想要的文档。 按作者汇总后,取前三名已售出的无拷贝(=顶级图书)并要求提供标题(如果需要,在查询中添加其他字段) { "size": 0, "query": { "terms": { "aut

我想写一个弹性查询,它应该返回两位作者的前三本书,西德尼·谢尔顿和约翰·格雷舍姆说

该文档包含id、标题、作者、无拷贝、发行日期等字段

我想在单个查询中完成这一点,而不是分别为Sidney Sheldon和John Gresham查询两次


非常感谢您的帮助。

首先筛选作者,只针对您想要的文档。 按作者汇总后,取前三名已售出的无拷贝(=顶级图书)并要求提供标题(如果需要,在查询中添加其他字段)

{
  "size": 0,
  "query": {
    "terms": {
      "author": [
        "Sidney Sheldon",
        "John Gresham"
      ]
    }
  },
  "aggs": {
    "author_agg": {
      "terms": {
        "field": "author"
      },
      "aggs": {
        "hits": {
          "top_hits": {
            "sort": [
              {
                "no_copies_sold": {
                  "order": "desc"
                }
              }
            ],
            "_source": [
              "title"
            ],
            "size": 3
          }
        }
      }
    }
  }
}