パイプラインプロセッサ

別のパイプラインを実行します。


表 33. パイプラインオプション

名前 必須 デフォルト 説明
name はい - 実行するパイプラインの名前。 テンプレートスニペットをサポートしています。
ignore_missing_pipeline いいえ false 失敗するのではなく、欠落しているパイプラインを無視するかどうか。
description いいえ - プロセッサの説明。 プロセッサの目的や構成を説明するのに役立ちます。
if いいえ - 条件付きでプロセッサを実行します。 プロセッサを条件付きで実行するを参照してください。
ignore_failure いいえ false プロセッサの失敗を無視します。 パイプラインの失敗を処理するを参照してください。
on_failure いいえ - プロセッサの失敗を処理します。 パイプラインの失敗を処理するを参照してください。
tag いいえ - プロセッサの識別子。 デバッグやメトリクスに役立ちます。

Js

  1. {
  2. "pipeline": {
  3. "name": "inner-pipeline"
  4. }
  5. }

現在のパイプラインの名前は、_ingest.pipelineインジェストメタデータキーからアクセスできます。

このプロセッサを使用してパイプラインをネストする例は次のとおりです:

内部パイプラインを定義します:

Python

  1. resp = client.ingest.put_pipeline(
  2. id="pipelineA",
  3. description="inner pipeline",
  4. processors=[
  5. {
  6. "set": {
  7. "field": "inner_pipeline_set",
  8. "value": "inner"
  9. }
  10. }
  11. ],
  12. )
  13. print(resp)

Ruby

  1. response = client.ingest.put_pipeline(
  2. id: 'pipelineA',
  3. body: {
  4. description: 'inner pipeline',
  5. processors: [
  6. {
  7. set: {
  8. field: 'inner_pipeline_set',
  9. value: 'inner'
  10. }
  11. }
  12. ]
  13. }
  14. )
  15. puts response

Js

  1. const response = await client.ingest.putPipeline({
  2. id: "pipelineA",
  3. description: "inner pipeline",
  4. processors: [
  5. {
  6. set: {
  7. field: "inner_pipeline_set",
  8. value: "inner",
  9. },
  10. },
  11. ],
  12. });
  13. console.log(response);

Console

  1. PUT _ingest/pipeline/pipelineA
  2. {
  3. "description" : "inner pipeline",
  4. "processors" : [
  5. {
  6. "set" : {
  7. "field": "inner_pipeline_set",
  8. "value": "inner"
  9. }
  10. }
  11. ]
  12. }

以前に定義した内部パイプラインを使用する別のパイプラインを定義します:

Python

  1. resp = client.ingest.put_pipeline(
  2. id="pipelineB",
  3. description="outer pipeline",
  4. processors=[
  5. {
  6. "pipeline": {
  7. "name": "pipelineA"
  8. }
  9. },
  10. {
  11. "set": {
  12. "field": "outer_pipeline_set",
  13. "value": "outer"
  14. }
  15. }
  16. ],
  17. )
  18. print(resp)

Ruby

  1. response = client.ingest.put_pipeline(
  2. id: 'pipelineB',
  3. body: {
  4. description: 'outer pipeline',
  5. processors: [
  6. {
  7. pipeline: {
  8. name: 'pipelineA'
  9. }
  10. },
  11. {
  12. set: {
  13. field: 'outer_pipeline_set',
  14. value: 'outer'
  15. }
  16. }
  17. ]
  18. }
  19. )
  20. puts response

Js

  1. const response = await client.ingest.putPipeline({
  2. id: "pipelineB",
  3. description: "outer pipeline",
  4. processors: [
  5. {
  6. pipeline: {
  7. name: "pipelineA",
  8. },
  9. },
  10. {
  11. set: {
  12. field: "outer_pipeline_set",
  13. value: "outer",
  14. },
  15. },
  16. ],
  17. });
  18. console.log(response);

Console

  1. PUT _ingest/pipeline/pipelineB
  2. {
  3. "description" : "outer pipeline",
  4. "processors" : [
  5. {
  6. "pipeline" : {
  7. "name": "pipelineA"
  8. }
  9. },
  10. {
  11. "set" : {
  12. "field": "outer_pipeline_set",
  13. "value": "outer"
  14. }
  15. }
  16. ]
  17. }

外部パイプラインを適用しながらドキュメントをインデックス化すると、外部パイプラインから内部パイプラインが実行されます:

Python

  1. resp = client.index(
  2. index="my-index-000001",
  3. id="1",
  4. pipeline="pipelineB",
  5. document={
  6. "field": "value"
  7. },
  8. )
  9. print(resp)

Ruby

  1. response = client.index(
  2. index: 'my-index-000001',
  3. id: 1,
  4. pipeline: 'pipelineB',
  5. body: {
  6. field: 'value'
  7. }
  8. )
  9. puts response

Js

  1. const response = await client.index({
  2. index: "my-index-000001",
  3. id: 1,
  4. pipeline: "pipelineB",
  5. document: {
  6. field: "value",
  7. },
  8. });
  9. console.log(response);

Console

  1. PUT /my-index-000001/_doc/1?pipeline=pipelineB
  2. {
  3. "field": "value"
  4. }

インデックスリクエストからの応答:

Console-Result

  1. {
  2. "_index": "my-index-000001",
  3. "_id": "1",
  4. "_version": 1,
  5. "result": "created",
  6. "_shards": {
  7. "total": 2,
  8. "successful": 1,
  9. "failed": 0
  10. },
  11. "_seq_no": 66,
  12. "_primary_term": 1
  13. }

インデックスされたドキュメント:

Js

  1. {
  2. "field": "value",
  3. "inner_pipeline_set": "inner",
  4. "outer_pipeline_set": "outer"
  5. }