0

次の形式のファイルがあります。

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>  

これは私が必要としているものではありません。

4

1 に答える 1