次の形式のファイルがあります。
10302\t<document>.....</document>
12303\t<document>.....</document>
10054\t<document>.....</document>
10034\t<document>.....</document>
ご覧のとおり、タブ文字で区切られた 2 つの値があります。する必要がある
- 最初のトークン (例: 10302、12303...) を ID としてインデックス付けします
- 2 番目のトークン (XML ドキュメント) からいくつかの情報を抽出 (およびインデックス) します。つまり、2 番目のトークンは、いくつかの情報を抽出するために xml フィルターで使用されます。
kv フィルターを使用して 2 つの値を分離することは可能ですか? 理想的には、次のようなドキュメントで各行を終了する必要があります。
id:10302
msg:<document>....</document>
grok フィルターを使用することもできますが、フィールド検出は非常に簡単で、単純なキーと値のロジックで実行できるため、正規表現は避けたいと思います。ただし、プレーンな kv 検出を使用すると、次のように終了します。
"10302": <document>.....</document>
"12303": <document>.....</document>
"10054": <document>.....</document>
"10034": <document>.....</document>
これは私が必要としているものではありません。