ElasticsearchのGREEDYDATAとは何ですか?

ElasticsearchのGREEDYDATAとは何ですか?

logstashフィルタ conf で見つかった conf ファイルを読みます。

    grok {
        match => { "message" => "Put\s*command\s*:\s+%{GREEDYDATA:command}" }
    }

このフィルタはどのように機能しますか?検索しようとしましたが、GREEDYDATA理解できませんでした。

答え1

GREEDYDATA は .* を意味します。 grokパターン(正規表現形式)では、ワイルドカードは、周囲の制約に応じて最大文字数まで拡張したときに「貪欲」と見なすことができます。したがって、「foo bar baz foo bar baz」を検索すると、「foo.*baz」は最初のヒットだけでなく文字列全体も返します。あなたの例では、GREEDYDATA(. *)と一致するすべてのエントリを "command"変数に入れます。

関連情報