「リソース」と呼ばれるフィールドの1つに、以下の2つの内部ドキュメントがあります。フィールド配列からテキストを抽出します
{
"type": "AWS::S3::Object",
"ARN": "arn:aws:s3:::sms_vild/servers_backup/db_1246/db/reports_201706.schema"
},
{
"accountId": "934331768510612",
"type": "AWS::S3::Bucket",
"ARN": "arn:aws:s3:::sms_vild"
}
私はARNフィールドを分割し、最後の部分を取得する必要があります。好ましくはスクリプトフィールドを使用して、「reports_201706.schema」とする。私は、日時フィールドとそれにしようとした)
1)私はfiledsのリストをチェックして見つけた唯一の2つのエントリresources.accountIdをして
2 resources.type:私が試してみました何
スクリプトで書かれたオプション(式)で正しく機能しました。
doc['eventTime'].value
3)しかし、同じことは他のテキストフィールドでは機能しません。
doc['eventType'].value
このエラーを取得:
"caused_by":{"type":"script_exception","reason":"link error","script_stack":["doc['eventType'].value","^---- HERE"],"script":"doc['eventType'].value","lang":"expression","caused_by":{"type":"illegal_argument_exception","reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [eventType] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."}}},"status":500}
それは私がマッピングを変更する必要があるということです。オブジェクトのネストされた配列からテキストを抽出する他の方法はありますか?
更新:
"ebs_attach.png" のサンプルkibanaここに...
https://search-accountact-phhofxr23bjev4uscghwda4y7m.us-east-1.es.amazonaws.com/_plugin/kibana/
検索を訪問して、リソースのフィールドを確認してください。あなたは、私はいくつかの-どのようにそれをとして表示することができる場合、私はARNフィールドを分割し、再び最後の部分を抽出し、「ebs_attach.png」
する必要が
{
"type": "AWS::S3::Object",
"ARN": "arn:aws:s3:::datameetgeo/ebs_attach.png"
},
{
"accountId": "513469704633",
"type": "AWS::S3::Bucket",
"ARN": "arn:aws:s3:::datameetgeo"
}
...このような2つのネストされた配列が表示されますスクリプトフィールドでは、バケット名とファイル名がディスカバリータブに並んで表示されます。つまり、2
アップデートは、私が発見]タブに新しいフィールドとして、このイメージに示すテキストを抽出しようとしています。
これは機能しませんでした。更新された質問をご覧ください。 – shantanuo
リソースが一種の配列であるかどうかはどのように分かりますか?フィールドリストに「リソース」が表示されません。ただし、タイプ、リソースからのARNおよびaccountidパラメーターは索引付けされます。 – shantanuo