2017-12-26 13 views
0

指定したフィールドデータの割合を数えたいと思います。 これは私のRESTfulなAPIです:文字フィールドの割合を数えてください

RESTfulなAPI:

GET _search 
{ 
"_source": { 
"includes": [ "FIRST_SWITCHED","LAST_SWITCHED","IPV4_DST_ADDR","L4_DST_PORT","IPV4_SRC_ADDR","L7_PROTO_NAME","IN_BYTES","IN_PKTS","OUT_BYTES","OUT_PKTS"] 
}, 
"from" : 0, "size" : 10000, 
"query": { 
"bool": { 
"must": [ 
{ 
    "match" : { "_index" : "logstash-2017.12.22" } 
}, 
{ 
    "match_phrase":{"IPV4_SRC_ADDR":"192.168.0.159"} 
}, 

{ 
    "range" : { 
    "LAST_SWITCHED" : { 
     "gte" : 1513683600 
    } 
    } 
} 

] 
} 
}, 
"aggs": { 
"IN_PKTS": { 
"sum": { 
    "field": "IN_PKTS" 
} 
}, 
"IN_BYTES": { 
"sum": { 
    "field": "IN_BYTES" 
} 
}, 
"OUT_BYTES": { 
"sum": { 
    "field": "OUT_BYTES" 
} 
}, 
"OUT_PKTS": { 
"sum": { 
    "field": "OUT_PKTS" 
} 
}, 
"percent":{ 
"significant_terms" : { 
     "field" : "L7_PROTO_NAME", 
     "percentage":{} 
    }}, 
"protocol" : { 
    "terms" : { 
     "field" : "PROTOCOL", 
     "include" : ["17", "6"]  
     } 
}, 
"Using_port_count" : {     
    "cardinality" : { 
     "field" : "L4_SRC_PORT" 
    } 
} 
} 
} 

が、多少の誤差があります。 これはエラーメッセージです:

エラーメッセージ:

「理由」:「Fielddataはデフォルトでテキストフィールドで無効になっているuninvertingによってメモリにfielddataロードするために[L7_PROTO_NAME]上の真= fielddata設定しますしかし、代わりにキーワードフィールドを使用してください。 "

ありがとうございます!

答えて

0

ok、私は答えを見つける!

ちょうどここにキーワードを追加すると、実行できます!

"field": "L7_PROTO_NAME.keyword"

関連する問題