gpt4 book ai didi

elasticsearch - 聚合查询:如何聚合并获取带有文档计数的多个值?

转载 作者:行者123 更新时间:2023-12-03 01:54:28 24 4
gpt4 key购买 nike

我有多个 flex 文档,其字段为“cityId”,“cityName”。我想计算具有特定“cityId”和“cityName”的文档的出现次数。

聚合查询以获取cityId并计数:

GET _search
{
"aggs": {
"CityIdCount": {
"terms": {
"field": "cityId",
"size": 0
}
}
},
"query": {
"bool": {
"must": [
...........................

这是现有查询,其结果为(key为cityId,doc_count为出现的次数:
{
“关键”:40,
“doc_count”:4906
},

这是我尝试获取的查询(cityId,cityName,doc_count),结果为(key为cityName,doc_count为该名称的出现次数:{
“key”:“Thane”,
“doc_count”:4906
}
GET _search
{
"aggs": {
"CityIdCount": {
"terms": {
"field": "cityId",
"field": "cityName",
"size": 0
}
}
},
"query": {
"bool": {
"must": [
..............................

我想全部在一起,例如:“cityId”,“cityName”,“doc_count”。

正确的查询是什么?

最佳答案

您(目前至少)无法按照建议的方式跨多个字段的合词执行术语汇总。您可以通过以下两种方式之一进行操作:

  • 使用 terms aggregation with a script连接要在其上执行聚合的字段。对于您的用例来说,这可能表现良好,但是请注意,您在查询时要付出性能成本。
  • 将您要在索引时执行聚合的字段值组合到新的not_analyzed字段中,例如在您的应用程序中或使用 cityIdAndName copy_to,并在此字段上使用术语聚合。以索引更多数据为代价,这将比第一种方法好得多。
  • 关于elasticsearch - 聚合查询:如何聚合并获取带有文档计数的多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37705210/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com