日付インデックス名プロセッサ

このプロセッサの目的は、ドキュメント内の日付またはタイムスタンプフィールドに基づいて、ドキュメントを適切な時間ベースのインデックスに指し示すことです。これは、日付数学インデックス名サポートを使用します。

プロセッサは、提供されたインデックス名プレフィックス、処理中のドキュメント内の日付またはタイムスタンプフィールド、および提供された日付の丸めに基づいて、_indexメタデータフィールドに日付数学インデックス名式を設定します。

まず、このプロセッサは、処理中のドキュメント内のフィールドから日付またはタイムスタンプを取得します。オプションで、フィールドの値を日付に解析する方法について日付フォーマットを設定できます。次に、この日付、提供されたインデックス名プレフィックス、および提供された日付の丸めが日付数学インデックス名式にフォーマットされます。また、ここでもオプションで、日付が日付数学インデックス名式にどのようにフォーマットされるかを指定できます。

  1. #### Python
  2. ``````python
  3. resp = client.ingest.put_pipeline(
  4. id="monthlyindex",
  5. description="monthly date-time index naming",
  6. processors=[
  7. {
  8. "date_index_name": {
  9. "field": "date1",
  10. "index_name_prefix": "my-index-",
  11. "date_rounding": "M"
  12. }
  13. }
  14. ],
  15. )
  16. print(resp)
  17. `

Ruby

  1. response = client.ingest.put_pipeline(
  2. id: 'monthlyindex',
  3. body: {
  4. description: 'monthly date-time index naming',
  5. processors: [
  6. {
  7. date_index_name: {
  8. field: 'date1',
  9. index_name_prefix: 'my-index-',
  10. date_rounding: 'M'
  11. }
  12. }
  13. ]
  14. }
  15. )
  16. puts response

Js

  1. const response = await client.ingest.putPipeline({
  2. id: "monthlyindex",
  3. description: "monthly date-time index naming",
  4. processors: [
  5. {
  6. date_index_name: {
  7. field: "date1",
  8. index_name_prefix: "my-index-",
  9. date_rounding: "M",
  10. },
  11. },
  12. ],
  13. });
  14. console.log(response);

コンソール

  1. PUT _ingest/pipeline/monthlyindex
  2. {
  3. "description": "monthly date-time index naming",
  4. "processors" : [
  5. {
  6. "date_index_name" : {
  7. "field" : "date1",
  8. "index_name_prefix" : "my-index-",
  9. "date_rounding" : "M"
  10. }
  11. }
  12. ]
  13. }

そのパイプラインをインデックスリクエストに使用する:

Python

  1. resp = client.index(
  2. index="my-index",
  3. id="1",
  4. pipeline="monthlyindex",
  5. document={
  6. "date1": "2016-04-25T12:02:01.789Z"
  7. },
  8. )
  9. print(resp)

Ruby

  1. response = client.index(
  2. index: 'my-index',
  3. id: 1,
  4. pipeline: 'monthlyindex',
  5. body: {
  6. "date1": '2016-04-25T12:02:01.789Z'
  7. }
  8. )
  9. puts response

Js

  1. const response = await client.index({
  2. index: "my-index",
  3. id: 1,
  4. pipeline: "monthlyindex",
  5. document: {
  6. date1: "2016-04-25T12:02:01.789Z",
  7. },
  8. });
  9. console.log(response);

コンソール

  1. PUT /my-index/_doc/1?pipeline=monthlyindex
  2. {
  3. "date1" : "2016-04-25T12:02:01.789Z"
  4. }

コンソール-結果

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

上記のリクエストは、このドキュメントをmy-indexインデックスにインデックスしませんが、my-index-2016-04-01インデックスにインデックスします。これは、月単位で丸められたためです。これは、日付インデックス名プロセッサがドキュメントの_indexプロパティを上書きするためです。

上記のドキュメントがmy-index-2016-04-01にインデックスされた実際のインデックスリクエストで提供された日付数学値を確認するには、シミュレートリクエストを使用してプロセッサの効果を調査できます。

Python

  1. resp = client.ingest.simulate(
  2. pipeline={
  3. "description": "monthly date-time index naming",
  4. "processors": [
  5. {
  6. "date_index_name": {
  7. "field": "date1",
  8. "index_name_prefix": "my-index-",
  9. "date_rounding": "M"
  10. }
  11. }
  12. ]
  13. },
  14. docs=[
  15. {
  16. "_source": {
  17. "date1": "2016-04-25T12:02:01.789Z"
  18. }
  19. }
  20. ],
  21. )
  22. print(resp)

Ruby

  1. response = client.ingest.simulate(
  2. body: {
  3. pipeline: {
  4. description: 'monthly date-time index naming',
  5. processors: [
  6. {
  7. date_index_name: {
  8. field: 'date1',
  9. index_name_prefix: 'my-index-',
  10. date_rounding: 'M'
  11. }
  12. }
  13. ]
  14. },
  15. docs: [
  16. {
  17. _source: {
  18. "date1": '2016-04-25T12:02:01.789Z'
  19. }
  20. }
  21. ]
  22. }
  23. )
  24. puts response

Js

  1. const response = await client.ingest.simulate({
  2. pipeline: {
  3. description: "monthly date-time index naming",
  4. processors: [
  5. {
  6. date_index_name: {
  7. field: "date1",
  8. index_name_prefix: "my-index-",
  9. date_rounding: "M",
  10. },
  11. },
  12. ],
  13. },
  14. docs: [
  15. {
  16. _source: {
  17. date1: "2016-04-25T12:02:01.789Z",
  18. },
  19. },
  20. ],
  21. });
  22. console.log(response);

コンソール

  1. POST _ingest/pipeline/_simulate
  2. {
  3. "pipeline" :
  4. {
  5. "description": "monthly date-time index naming",
  6. "processors" : [
  7. {
  8. "date_index_name" : {
  9. "field" : "date1",
  10. "index_name_prefix" : "my-index-",
  11. "date_rounding" : "M"
  12. }
  13. }
  14. ]
  15. },
  16. "docs": [
  17. {
  18. "_source": {
  19. "date1": "2016-04-25T12:02:01.789Z"
  20. }
  21. }
  22. ]
  23. }

結果:

コンソール-結果

  1. {
  2. "docs" : [
  3. {
  4. "doc" : {
  5. "_id" : "_id",
  6. "_index" : "<my-index-{2016-04-25||/M{yyyy-MM-dd|UTC}}>",
  7. "_version" : "-3",
  8. "_source" : {
  9. "date1" : "2016-04-25T12:02:01.789Z"
  10. },
  11. "_ingest" : {
  12. "timestamp" : "2016-11-08T19:43:03.850+0000"
  13. }
  14. }
  15. }
  16. ]
  17. }

上記の例は、_index<my-index-{2016-04-25||/M{yyyy-MM-dd|UTC}}>に設定されたことを示しています。Elasticsearchは、これを2016-04-01を意味すると理解します。これは、日付数学インデックス名のドキュメントで説明されています。


表12. 日付インデックス名オプション

名前 必須 デフォルト 説明
field はい - 日付またはタイムスタンプを取得するフィールド。
index_name_prefix いいえ - 印刷された日付の前に追加されるインデックス名のプレフィックス。 テンプレートスニペットをサポートします。
date_rounding はい - 日付をインデックス名にフォーマットする際の丸め方法。 有効な値は、y(年)、M(月)、w(週)、d(日)、h(時間)、m(分)、およびs(秒)です。 テンプレートスニペットをサポートします。
date_formats いいえ yyyy-MM-dd’T’HH:mm:ss.SSSXX 処理中のドキュメント内の日付/タイムスタンプを解析するための期待される日付フォーマットの配列。 java時間パターンまたは次のフォーマットのいずれかである必要があります: ISO8601、UNIX、UNIX_MS、またはTAI64N。
timezone いいえ UTC 日付を解析する際および日付数学インデックスサポートが式を具体的なインデックス名に解決する際に使用するタイムゾーン。
locale いいえ ENGLISH 処理中のドキュメントから日付を解析する際に使用するロケール。 月名や曜日を解析する際に関連します。
index_name_format いいえ yyyy-MM-dd 解析された日付をインデックス名に印刷する際に使用されるフォーマット。 有効なjava時間パターンが期待されます。 テンプレートスニペットをサポートします。
description いいえ - プロセッサの説明。 プロセッサの目的や設定を説明するのに役立ちます。
if いいえ - プロセッサを条件付きで実行します。 条件付きでプロセッサを実行するを参照してください。
ignore_failure いいえ false プロセッサの失敗を無視します。 パイプラインの失敗を処理するを参照してください。
on_failure いいえ - プロセッサの失敗を処理します。 パイプラインの失敗を処理するを参照してください。
tag いいえ - プロセッサの識別子。 デバッグやメトリクスに役立ちます。