JSON フィールドにインデックスを作成すると、明示的にインデックスが作成されていないサブフィールドを含め、フィールド名とフィールド値の両方がインデックス トラフィックとしてカウントされます。
計算ルール
JSON フィールドのインデックス トラフィックは、次のルールに基づいて計算されます。
- サブフィールドにインデックスが作成されていない場合、そのインデックス トラフィックはテキストデータ型として計算されます。
- サブフィールドにインデックスが作成されている場合、そのインデックス トラフィックは、サブフィールドの実際のデータ型 (テキスト、long、または double) に基づいて計算されます。詳細については、「インデックスの作成」をご参照ください。
例
次のサンプルログでは、result フィールドは JSON 型で、result.anomaly_type サブフィールドのみにインデックスが作成されています。インデックス トラフィックには、result フィールドの名前とその値のすべての内容が含まれます。dim_name などのインデックスが作成されていないサブフィールドの名前と値も含まれ、そのデータ型はテキストとして扱われます。
- サンプルログ
{ "result": { "anomaly_type": "None", "dim_name": "body_bytes_sent", "is_anomaly": false, "score": 0, "value": "4850.000000" } } - インデックス設定では、result フィールドのデータ型は json、デリミタは
,':"=0[]{}?@&<>/\n\t\rです。その anomaly_type サブフィールドのデータ型は text で、インデックスが作成されています。