如何在桶排序弹性搜索查询中添加多个字段

How to add multiple Fields in the Bucket sort Elastic search query

下面是查询。在此查询中,我需要再添加一个字段 category.keyword。 我发现很难添加额外的字段。请修改我的查询并在查询中也添加类别关键字字段。

我的要求是显示问题列表和类别列表以及计数。

{
  "size": 0,
  "aggs": {
    "genres": {
      "terms": {
        "field": "question.keyword",
        "order": {
          "_count": "desc"
        }
      },
      "aggs": {
        "bucket_truncate": {
          "bucket_sort": {
            "from": 0,
            "size": 10
          }
        }
      }
    }
  }
}

索引映射详细信息

  "mapping": {
    "properties": {
      "answer": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "category": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "id": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "question": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "relavence_score": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "source": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
}
      },
      "timestamp": {
        "type": "long"
      },
      "id": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }
    }
  }
}

您可以在同一级别有多个聚合,在您的情况下 bucket_truncatecategories:

{
  "size": 0,
  "aggs": {
    "questions": {
      "terms": {
        "field": "question.keyword",
        "order": {
          "_count": "desc"
        }
      },
      "aggs": {
        "categories": {
          "terms": {
            "field": "category.keyword",
            "order": {
              "_count": "desc"
            }
          }
        },
        "bucket_truncate": {
          "bucket_sort": {
            "from": 0,
            "size": 10
          }
        }
      }
    }
  }
}