日付インデックス名プロセッサ
このプロセッサの目的は、ドキュメント内の日付またはタイムスタンプフィールドに基づいて、ドキュメントを適切な時間ベースのインデックスに指し示すことです。これは、日付数学インデックス名サポートを使用します。
プロセッサは、提供されたインデックス名プレフィックス、処理中のドキュメント内の日付またはタイムスタンプフィールド、および提供された日付の丸めに基づいて、_index
メタデータフィールドに日付数学インデックス名式を設定します。
まず、このプロセッサは、処理中のドキュメント内のフィールドから日付またはタイムスタンプを取得します。オプションで、フィールドの値を日付に解析する方法について日付フォーマットを設定できます。次に、この日付、提供されたインデックス名プレフィックス、および提供された日付の丸めが日付数学インデックス名式にフォーマットされます。また、ここでもオプションで、日付が日付数学インデックス名式にどのようにフォーマットされるかを指定できます。
#### Python
``````python
resp = client.ingest.put_pipeline(
id="monthlyindex",
description="monthly date-time index naming",
processors=[
{
"date_index_name": {
"field": "date1",
"index_name_prefix": "my-index-",
"date_rounding": "M"
}
}
],
)
print(resp)
`
Ruby
response = client.ingest.put_pipeline(
id: 'monthlyindex',
body: {
description: 'monthly date-time index naming',
processors: [
{
date_index_name: {
field: 'date1',
index_name_prefix: 'my-index-',
date_rounding: 'M'
}
}
]
}
)
puts response
Js
const response = await client.ingest.putPipeline({
id: "monthlyindex",
description: "monthly date-time index naming",
processors: [
{
date_index_name: {
field: "date1",
index_name_prefix: "my-index-",
date_rounding: "M",
},
},
],
});
console.log(response);
コンソール
PUT _ingest/pipeline/monthlyindex
{
"description": "monthly date-time index naming",
"processors" : [
{
"date_index_name" : {
"field" : "date1",
"index_name_prefix" : "my-index-",
"date_rounding" : "M"
}
}
]
}
そのパイプラインをインデックスリクエストに使用する:
Python
resp = client.index(
index="my-index",
id="1",
pipeline="monthlyindex",
document={
"date1": "2016-04-25T12:02:01.789Z"
},
)
print(resp)
Ruby
response = client.index(
index: 'my-index',
id: 1,
pipeline: 'monthlyindex',
body: {
"date1": '2016-04-25T12:02:01.789Z'
}
)
puts response
Js
const response = await client.index({
index: "my-index",
id: 1,
pipeline: "monthlyindex",
document: {
date1: "2016-04-25T12:02:01.789Z",
},
});
console.log(response);
コンソール
PUT /my-index/_doc/1?pipeline=monthlyindex
{
"date1" : "2016-04-25T12:02:01.789Z"
}
コンソール-結果
{
"_index" : "my-index-2016-04-01",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 55,
"_primary_term" : 1
}
上記のリクエストは、このドキュメントをmy-index
インデックスにインデックスしませんが、my-index-2016-04-01
インデックスにインデックスします。これは、月単位で丸められたためです。これは、日付インデックス名プロセッサがドキュメントの_index
プロパティを上書きするためです。
上記のドキュメントがmy-index-2016-04-01
にインデックスされた実際のインデックスリクエストで提供された日付数学値を確認するには、シミュレートリクエストを使用してプロセッサの効果を調査できます。
Python
resp = client.ingest.simulate(
pipeline={
"description": "monthly date-time index naming",
"processors": [
{
"date_index_name": {
"field": "date1",
"index_name_prefix": "my-index-",
"date_rounding": "M"
}
}
]
},
docs=[
{
"_source": {
"date1": "2016-04-25T12:02:01.789Z"
}
}
],
)
print(resp)
Ruby
response = client.ingest.simulate(
body: {
pipeline: {
description: 'monthly date-time index naming',
processors: [
{
date_index_name: {
field: 'date1',
index_name_prefix: 'my-index-',
date_rounding: 'M'
}
}
]
},
docs: [
{
_source: {
"date1": '2016-04-25T12:02:01.789Z'
}
}
]
}
)
puts response
Js
const response = await client.ingest.simulate({
pipeline: {
description: "monthly date-time index naming",
processors: [
{
date_index_name: {
field: "date1",
index_name_prefix: "my-index-",
date_rounding: "M",
},
},
],
},
docs: [
{
_source: {
date1: "2016-04-25T12:02:01.789Z",
},
},
],
});
console.log(response);
コンソール
POST _ingest/pipeline/_simulate
{
"pipeline" :
{
"description": "monthly date-time index naming",
"processors" : [
{
"date_index_name" : {
"field" : "date1",
"index_name_prefix" : "my-index-",
"date_rounding" : "M"
}
}
]
},
"docs": [
{
"_source": {
"date1": "2016-04-25T12:02:01.789Z"
}
}
]
}
コンソール-結果
{
"docs" : [
{
"doc" : {
"_id" : "_id",
"_index" : "<my-index-{2016-04-25||/M{yyyy-MM-dd|UTC}}>",
"_version" : "-3",
"_source" : {
"date1" : "2016-04-25T12:02:01.789Z"
},
"_ingest" : {
"timestamp" : "2016-11-08T19:43:03.850+0000"
}
}
}
]
}
上記の例は、_index
が<my-index-{2016-04-25||/M{yyyy-MM-dd|UTC}}>
に設定されたことを示しています。Elasticsearchは、これを2016-04-01
を意味すると理解します。これは、日付数学インデックス名のドキュメントで説明されています。
名前 | 必須 | デフォルト | 説明 |
---|---|---|---|
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 |
いいえ | - | プロセッサの識別子。 デバッグやメトリクスに役立ちます。 |