2016-11-09 1 views
0

私はelasticsearchに次のデータを持っています。私は "Source MAC Addr"の特定の値のためにマッチングした後、 "Dest IP"に基づいて集計したい。どのようにjavascriptからelasticsearchクエリを使用してこれを達成する。javascriptからのネストしたフィールドにアクセスするElasticsearchクエリ

{ 
"took" : 2, 
"timed_out" : false, 
"_shards" : { 
"total" : 5, 
"successful" : 5, 
"failed" : 0 
}, 
"hits" : { 
"total" : 2, 
"max_score" : 1.0, 
"hits" : [ { 
    "_index" : "logstash-1", 
    "_type" : "packet", 
    "_id" : "bcb57f445084cc0e474366bf892f6b4ab9162a4e", 
    "_score" : 1.0, 
    "_source" : { 
    "@source" : "logstash", 
    "@source_host" : "03", 
    "@message" : "72", 
    "@tags" : [ ], 
    "@fields" : { 
     "Protocol Type" : "TCP", 
     "Dst Domain" : "USER1", 
     "No" : 72, 
     "Timestamp" : "2016-11-08 10:46:57.691", 
     "Source IP" : "10.10.10.10", 
     "Source MAC Addr" : "00:00:00:00:00:00", 
     "Length" : 1480, 
     "Dest MAC Addr" : "ad:ad:ad:ad:ad:ad", 
     "Src -> Dst" : "10.10.10.10 -> 20.20.20.20", 
     "TTL" : 60, 
     "Src Domain" : "act", 
     "logger" : "logger", 
     "Dest IP" : "20.20.20.20", 
     "levelname" : "INFO", 
     "Size" : 100 
    }, 
    } 
}, { 
    "_index" : "logstash", 
    "_type" : "packet", 
    "_id" : "d6ff9ac16f70dc2c4b3d599c74489475db124fd7", 
    "_score" : 1.0, 
    "_source" : { 
    "message" : "aaaa\n", 
    "tags" : [ "_jsonparsefailure" ], 
    "@version" : "1", 
    "@timestamp" : "2016-11-08T04:11:30.663Z", 
    "type" : "packet", 
    "host" : "10.10.10.10", 
    "fingerprint" : "d6ff9ac16f70dc2c4b3d599c74489475db124fd7" 
    } 
} ] 
} 
} 
+0

はよく、これは、クエリ結果のようですどのような集約が必要なのかわからないので、IPとMAC​​によってフィルタリングされたクエリは集約なしで、IP Adressとtによる最初のフィルタリングによって実行できます鶏の集合体 – HolgT

答えて

0

とてもIPおよびMACによってフィルタリングクエリが行う必要があり、まだ私はあなたが欲しい集約の種類を取得しない、また、そのクエリを含めることが便利であったであろうように、よく、これは、クエリ結果のようですまだ私は、また、そのクエリを含めると便利だっただろうように、また、IP住所によって、第1のフィルタによって行うことができる凝集することなく仕事、して、集計

"aggs": { 
    "by_mac_addr": { 
     "terms": { 
     "field": "Source MAC Addr", 
     "order": { 
      "_term": "asc" 
     }, 
     "size": 1000 
     } 
    } 
関連する問題