如何使用条件进行查询,并在不重复的情况下整理出所需的内容

sshcrbum  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(272)

我是es的新手,现在我可以用条件警报对数据库中的字段进行排序了=0代码在这里:

{
    "size":1,
  "query": {
    "bool": {
      "must_not": {
        "term": {
          "header.alarmStatus": 0
        }
      }
    }//bool
   //query
  }
}

它显示它有大约4000次命中,这就是我想要的结果(大小=1)如下

"hits": {
    "total": {
        "value": 3842,
        "relation": "eq"
    },
    "max_score": 0.0,
    "hits": [
        {
            "_index": "index123",
            "_type": "meter",
            "_id": "63iti3QBSliyJ__JFt6C",
            "_score": 0.0,
            "_source": {
                "header": {
                    "meterId": 1245,

                },
                "data": {
                    "seqNum": 72

            }
        }
    ]
}

我的问题是如何使用条件“header.alarmstatus”进行查询:=0并列出所有具有重复计数的 Jmeter id?谢谢
杰夫

ubof19bj

ubof19bj1#

据我所知,你需要列出所有 meterId (删除重复计数)用于具有条件的查询 "header.alarmStatus": !=0 . 为此,您可以使用术语聚合和基数聚合作为子聚合
索引数据:

{
  "header": {
    "meterId": 1246,
    "alarmStatus": 3
  },
  "data": {
    "seqNum": 72
  }
}
{
  "header": {
    "meterId": 1246,
    "alarmStatus": 2
  },
  "data": {
    "seqNum": 72
  }
}
{
  "header": {
    "meterId": 1245,
    "alarmStatus": 1
  },
  "data": {
    "seqNum": 72
  }
}

搜索查询:

{
  "query": {
    "bool": {
      "must_not": {
        "term": {
          "header.alarmStatus": 0
        }
      }
    }
  },
  "aggs": {
    "genres": {
      "terms": {
        "field": "header.meterId"
      },
      "aggs": {
        "item_count": {
          "cardinality": {
            "field": "header.meterId"       
          }
        }
      }
    }
  }
}

搜索结果:

"aggregations": {
    "genres": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": 1246,
          "doc_count": 2,
          "item_count": {
            "value": 1
          }
        },
        {
          "key": 1245,
          "doc_count": 1,
          "item_count": {
            "value": 1
          }
        }
      ]
    }

相关问题