名前に '。'が含まれているため、名前を変更する必要があるelasticsearch(5.5.1)のフィールドがあります。様々な問題を引き起こしています。名前を変更したいフィールドは、別のフィールドの中にネストされています。elasticsearch rename processorとingest pipelineでドットを含むネストされたフィールドの名前を変更する方法
私がここで説明するように再インデックスを実行するためにインジェストパイプラインで名前の変更プロセッサを使用しようとしています:ここhttps://stackoverflow.com/a/43142634/5114
は私のパイプラインのシミュレーション要求である(あなたがテストするKibanaにおける開発ツール・ユーティリティにそのままこれをコピーすることができますそれは):私が思う
{
"docs": [
{
"error": {
"root_cause": [
{
"type": "exception",
"reason": "java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: field [message.message.group1] doesn't exist",
"header": {
"processor_type": "rename"
}
}
],
"type": "exception",
"reason": "java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: field [message.message.group1] doesn't exist",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "java.lang.IllegalArgumentException: field [message.message.group1] doesn't exist",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "field [message.message.group1] doesn't exist"
}
},
"header": {
"processor_type": "rename"
}
}
}
]
}
:
POST _ingest/pipeline/_simulate
{
"pipeline" : {
"description": "rename nested fields to remove dot",
"processors": [
{
"rename" : {
"field" : "message.message.group1",
"target_field" : "message_group1"
}
},
{
"rename" : {
"field" : "message.message.group2",
"target_field" : "message.message_group2"
}
}
]
},
"docs":[
{
"_type": "status",
"_id": "1509533940000-m1-bfd7183bf036bd346a0bcf2540c05a70fbc4d69e",
"_version": 5,
"_score": null,
"_source": {
"message": {
"_job-id": "AV8wHJEaa4J0sFOfcZI5",
"message.group1": 0,
"message.group2": "foo"
},
"timestamp": 1509533940000
}
}
]
}
問題は私のパイプラインを使用しようとすると、私はエラーを取得するということです問題は、フィールド "message.group1"が別のフィールド( "メッセージ")の内側にあることによって発生します。私は、プロセッサの文脈で私が望む分野をどのように参照するのか分かりません。ネストされたフィールド、ドットを含むフィールド、およびドットを含むネストされたフィールドの間にはあいまいさがあるようです。
これらのフィールドを参照する正しい方法、またはElasticsearchが必要な処理を実行できない場合は、これが不可能であることを確認しています。 Elasticsearchがこれを行うことができれば、おそらく非常に速くなるでしょう。そうしないと、文書を取り込み、変換して新しいインデックスに保存する外部スクリプトを書く必要があります。
似たようなことを話す古い質問があります:https://stackoverflow.com/questions/36774110/replacing-a-dot-in-an-field-name – Mnebuerquo