elasticsearch 如果该值为0 KIBANA,则从该值中获取最高命中率,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 如果该值为0 KIBANA,则从该值中获取最高命中率,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 如果该值为0 KIBANA,则从该值中获取最高命中率

elasticsearch 如果该值为0 KIBANA,则从该值中获取最高命中率,elasticsearch,kibana,elasticsearch,Kibana,在我的第一篇文章中,我花了一个周末寻找一个没有好结果的答案 我会尽力解释我的问题,我有这个索引 ST ID 01 11 02 1.2 02 13 03 例如,当每个ID的最后一个记录为0时,我需要显示它们,例如,在这个索引中,我必须只显示ID 1和ID 2,因为最后一个记录在ID 1和2中的ST到0 有人能帮我解决这个问题吗 BR映射: PUT index34 { "mappings": { "properties": { "ST":{ "type": "

在我的第一篇文章中,我花了一个周末寻找一个没有好结果的答案

我会尽力解释我的问题,我有这个索引

ST ID
01
11
02
1.2
02
13
03

例如,当每个ID的最后一个记录为0时,我需要显示它们,例如,在这个索引中,我必须只显示ID 1和ID 2,因为最后一个记录在ID 1和2中的ST到0

有人能帮我解决这个问题吗

BR

映射:

PUT index34
{
  "mappings": {
    "properties": {
      "ST":{
        "type": "integer"
      },
      "ID":{
        "type": "integer"
      },
      "Date":{
        "type": "date"
      }
    }
  }
}
数据:

查询:我获取所有术语的最大日期,然后获取ST为零时的最大值。如果这两个匹配(这意味着0是最新的文档),那么我将保留该桶

GET index34/_search
{
  "size": 0,
  "aggs": {
    "ID": {
      "terms": {
        "field": "ID",
        "size": 10000
      },
      "aggs": {
        "maxDate": {
          "max": {
            "field": "Date"
          }
        },
        "pending_status": {
          "filter": {
            "term": {
              "ST": 0
            }
          },
          "aggs": {
            "filtered_maxdate": {
              "max": {
                "field": "Date"   
              }
            }
          }
        },
        "buckets_latest_status_pending": {
          "bucket_selector": {
            "buckets_path": {
              "filtereddate": "pending_status>filtered_maxdate",
              "maxDate": "maxDate"
            },
            "script": "params.filtereddate==params.maxDate"
          }
        }
      }
    }
  }
}
答复:

"aggregations" : {
    "ID" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : 1,
          "doc_count" : 2,
          "pending_status" : {
            "doc_count" : 1,
            "filtered_maxdate" : {
              "value" : 1.57165926E12,
              "value_as_string" : "2019-10-21T12:01:00.000Z"
            }
          },
          "maxDate" : {
            "value" : 1.57165926E12,
            "value_as_string" : "2019-10-21T12:01:00.000Z"
          }
        },
        {
          "key" : 2,
          "doc_count" : 2,
          "pending_status" : {
            "doc_count" : 1,
            "filtered_maxdate" : {
              "value" : 1.57165944E12,
              "value_as_string" : "2019-10-21T12:04:00.000Z"
            }
          },
          "maxDate" : {
            "value" : 1.57165944E12,
            "value_as_string" : "2019-10-21T12:04:00.000Z"
          }
        }
      ]
    }
映射:

PUT index34
{
  "mappings": {
    "properties": {
      "ST":{
        "type": "integer"
      },
      "ID":{
        "type": "integer"
      },
      "Date":{
        "type": "date"
      }
    }
  }
}
数据:

查询:我获取所有术语的最大日期,然后获取ST为零时的最大值。如果这两个匹配(这意味着0是最新的文档),那么我将保留该桶

GET index34/_search
{
  "size": 0,
  "aggs": {
    "ID": {
      "terms": {
        "field": "ID",
        "size": 10000
      },
      "aggs": {
        "maxDate": {
          "max": {
            "field": "Date"
          }
        },
        "pending_status": {
          "filter": {
            "term": {
              "ST": 0
            }
          },
          "aggs": {
            "filtered_maxdate": {
              "max": {
                "field": "Date"   
              }
            }
          }
        },
        "buckets_latest_status_pending": {
          "bucket_selector": {
            "buckets_path": {
              "filtereddate": "pending_status>filtered_maxdate",
              "maxDate": "maxDate"
            },
            "script": "params.filtereddate==params.maxDate"
          }
        }
      }
    }
  }
}
答复:

"aggregations" : {
    "ID" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : 1,
          "doc_count" : 2,
          "pending_status" : {
            "doc_count" : 1,
            "filtered_maxdate" : {
              "value" : 1.57165926E12,
              "value_as_string" : "2019-10-21T12:01:00.000Z"
            }
          },
          "maxDate" : {
            "value" : 1.57165926E12,
            "value_as_string" : "2019-10-21T12:01:00.000Z"
          }
        },
        {
          "key" : 2,
          "doc_count" : 2,
          "pending_status" : {
            "doc_count" : 1,
            "filtered_maxdate" : {
              "value" : 1.57165944E12,
              "value_as_string" : "2019-10-21T12:04:00.000Z"
            }
          },
          "maxDate" : {
            "value" : 1.57165944E12,
            "value_as_string" : "2019-10-21T12:04:00.000Z"
          }
        }
      ]
    }


这些字段中是否有唯一的日期字段?根据所讨论的数据,值将是2和3,对吗?嗨,J,ID是唯一的,可以是1,2,3,4。我只需要从这些ID中知道最后一个文档是否为0,在该示例中,只有ID 1和ID 2可以显示,ID 3最后一条记录的ST为1,不需要显示,在SQL中,也许我可以通过group by和having获得它们,ST值仅为0或1json数据未排序。有没有像date这样的字段可以用来定义订单是的,有时间戳字段,非常适合这样做:我几乎得到了我想要的,但是,我如何在KIBANA中应用它呢?当ST为0时,我需要显示一个ID为的表,其中包含最热门的数据。这些表中是否有唯一的日期字段?根据所讨论的数据,值将是2和3,对吗?嗨,J,ID是唯一的,可以是1,2,3,4。我只需要从这些ID中知道最后一个文档是否为0,在该示例中,只有ID 1和ID 2可以显示,ID 3最后一条记录的ST为1,不需要显示,在SQL中,也许我可以通过group by和having获得它们,ST值仅为0或1json数据未排序。有没有像date这样的字段可以用来定义订单是的,有时间戳字段,非常适合这样做:我几乎得到了我想要的,但是,我如何在KIBANA中应用它呢?当ST为0HI J时,我需要显示一个带有ID的表,其中包含他们的热门歌曲!!谢谢,我将尝试在KIbana中应用它,并尽快回答您:D,非常感谢我如何在KIbana中测试它?您是指可视化还是开发工具。在developer tools(kibana)中,您可以运行它并检查输出(json格式)。我在developer tools中测试它,如何将其转换为可视化给我一些时间,我会检查并返回。我以前从来没有尝试过可视化!!谢谢,我将尝试在KIbana中应用它,并尽快回答您:D,非常感谢我如何在KIbana中测试它?您是指可视化还是开发工具。在developer tools(kibana)中,您可以运行它并检查输出(json格式)。我在developer tools中测试它,如何将其转换为可视化给我一些时间,我会检查并返回。我以前从未尝试过可视化