パイプラインプロセッサ
別のパイプラインを実行します。
名前 | 必須 | デフォルト | 説明 |
---|---|---|---|
name |
はい | - | 実行するパイプラインの名前。 テンプレートスニペットをサポートしています。 |
ignore_missing_pipeline |
いいえ | false | 失敗するのではなく、欠落しているパイプラインを無視するかどうか。 |
description |
いいえ | - | プロセッサの説明。 プロセッサの目的や構成を説明するのに役立ちます。 |
if |
いいえ | - | 条件付きでプロセッサを実行します。 プロセッサを条件付きで実行するを参照してください。 |
ignore_failure |
いいえ | false |
プロセッサの失敗を無視します。 パイプラインの失敗を処理するを参照してください。 |
on_failure |
いいえ | - | プロセッサの失敗を処理します。 パイプラインの失敗を処理するを参照してください。 |
tag |
いいえ | - | プロセッサの識別子。 デバッグやメトリクスに役立ちます。 |
Js
{
"pipeline": {
"name": "inner-pipeline"
}
}
現在のパイプラインの名前は、_ingest.pipeline
インジェストメタデータキーからアクセスできます。
このプロセッサを使用してパイプラインをネストする例は次のとおりです:
内部パイプラインを定義します:
Python
resp = client.ingest.put_pipeline(
id="pipelineA",
description="inner pipeline",
processors=[
{
"set": {
"field": "inner_pipeline_set",
"value": "inner"
}
}
],
)
print(resp)
Ruby
response = client.ingest.put_pipeline(
id: 'pipelineA',
body: {
description: 'inner pipeline',
processors: [
{
set: {
field: 'inner_pipeline_set',
value: 'inner'
}
}
]
}
)
puts response
Js
const response = await client.ingest.putPipeline({
id: "pipelineA",
description: "inner pipeline",
processors: [
{
set: {
field: "inner_pipeline_set",
value: "inner",
},
},
],
});
console.log(response);
Console
PUT _ingest/pipeline/pipelineA
{
"description" : "inner pipeline",
"processors" : [
{
"set" : {
"field": "inner_pipeline_set",
"value": "inner"
}
}
]
}
以前に定義した内部パイプラインを使用する別のパイプラインを定義します:
Python
resp = client.ingest.put_pipeline(
id="pipelineB",
description="outer pipeline",
processors=[
{
"pipeline": {
"name": "pipelineA"
}
},
{
"set": {
"field": "outer_pipeline_set",
"value": "outer"
}
}
],
)
print(resp)
Ruby
response = client.ingest.put_pipeline(
id: 'pipelineB',
body: {
description: 'outer pipeline',
processors: [
{
pipeline: {
name: 'pipelineA'
}
},
{
set: {
field: 'outer_pipeline_set',
value: 'outer'
}
}
]
}
)
puts response
Js
const response = await client.ingest.putPipeline({
id: "pipelineB",
description: "outer pipeline",
processors: [
{
pipeline: {
name: "pipelineA",
},
},
{
set: {
field: "outer_pipeline_set",
value: "outer",
},
},
],
});
console.log(response);
Console
PUT _ingest/pipeline/pipelineB
{
"description" : "outer pipeline",
"processors" : [
{
"pipeline" : {
"name": "pipelineA"
}
},
{
"set" : {
"field": "outer_pipeline_set",
"value": "outer"
}
}
]
}
外部パイプラインを適用しながらドキュメントをインデックス化すると、外部パイプラインから内部パイプラインが実行されます:
Python
resp = client.index(
index="my-index-000001",
id="1",
pipeline="pipelineB",
document={
"field": "value"
},
)
print(resp)
Ruby
response = client.index(
index: 'my-index-000001',
id: 1,
pipeline: 'pipelineB',
body: {
field: 'value'
}
)
puts response
Js
const response = await client.index({
index: "my-index-000001",
id: 1,
pipeline: "pipelineB",
document: {
field: "value",
},
});
console.log(response);
Console
PUT /my-index-000001/_doc/1?pipeline=pipelineB
{
"field": "value"
}
Console-Result
{
"_index": "my-index-000001",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 66,
"_primary_term": 1
}
インデックスされたドキュメント:
Js
{
"field": "value",
"inner_pipeline_set": "inner",
"outer_pipeline_set": "outer"
}