1. Accessing Data in Pipelines(访问管道中的数据)

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.3/accessing-data-in-pipelines.html

译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=9406187

贡献者 : 那伊抹微笑,ApacheCN,Apache中文网

该 pipeline(管道)中的 processor(处理器)对通过 pipeline(管道)的 document(文档)进行读写访问操作。该 processor(处理器)可以访问 source of document(源文档)中的 fields(字段)以及 document(文档)的 metadata field(元数据字段)。

1.1.1. Accessing Fields in the Source(访问源文档中的字段)

访问 source(源文档)中的 field 是很简单的。您可以简单的通过它们的 name(名字)来引用 fields(字段)。例如 :

{
  "set": {
    "field": "my_field"
    "value": 582.1
  }
}

除此之外,source(源文档)中的 field(字段)始终可以通过 _source 前缀来访问 :

{
  "set": {
    "field": "_source.my_field"
    "value": 582.1
  }
}

1.1.2. Accessing Metadata Fields(访问元数据字段)

您可以使用您在 source(源文档)中访问 field(字段)一样的方式来访问 metadata fields(元数据字段)。这是可以做到的,因为 Elasticsearch 不会允许 source(源文档)中的 fields(字段) 与 metadata fields(元数据字段)拥有一样的 name(名字)。

以下示例将 document(文档)的 _id**metadata**field(元数据字段)设置为 1 :

{
  "set": {
    "field": "_id"
    "value": "1"
  }
}

以下 metadata fields(元数据字段)可以通过 processor(处理器)来访问 : _index,_type,_id,_routing,_parent。

1.1.3. Accessing Ingest Metadata Fields(访问 Ingest 的元数据字段)

除了 metadata fileds(元数据字段)和 source fields(源文档字段)之外,ingest 也可以添加 ingest metadata 到它处理的 documents(文档)中去。这些 metadata properties(元数据属性)可以在 _ingest key 下进行访问。目前,ingest 会在 ingest metadata 的 _ingest.timestamp key 下添加 ingest timestamp 属性。该 ingest timestamp 是在 Elasticsearch 接收 index(索引)或 bulk request 来预处理 document(文档)的 time(时间)。

任何 processor(处理器)都可以在 document(文档)处理期间添加与 ingest 相关的 metadata(元数据)。Ingest metadata 是 transient(瞬时的),并且在 pipeline(管道)处理 document(文档)后丢失。因此,ingest metadata 将不会被索引。

以下示例添加了一个名为 received 的 field(字段),它的值是 ingest 的 timestamp :

{
  "set": {
    "field": "received"
    "value": "{{_ingest.timestamp}}"
  }
}

与 Elasticsearch metadata fields 不一样的是,这个名为 _ingest 的 metadata fields 可以作为 source of document(源文档)中的有效名称。使用 _source._ingest 来引用 source document(源文档)中的 field(字段)。否则,_ingest 将会被作为一个 ingest metadata field 来解释。

1.1.4. Accessing Fields and Metafields in Templates(访问模版中的字段和元数据字段)

一些 processor(处理器)的设置也支持模板化。所支持模版的设置可以有零到多个 template snippets(模版片段)。一个 template snippets(模版片段)以 {{ 开始并以 }} 结束。在模板中访问 field(字段)和 metadata(元数据)与通过普通的 processor(处理器)field(字段)设置完全相同。

以下示例添加了一个名为 field_c 的 field(字段)。它的值为 field_a 和 field_b 的值的 concatenation(串联)。

{
  "set": {
    "field": "field_c"
    "value": "{{field_a}} {{field_b}}"
  }
}

以下示例使用 source(源文档)中 geoip.country_iso_code 字段的值来设置 document 将要被索引到的 index(索引)。

{
  "set": {
    "field": "_index"
    "value": "{{geoip.country_iso_code}}"
  }
}
Copyright © Kilvn 2021. all right reserved,powered by Gitbook最后更新时间: 2021-06-08 20:54:48

results matching ""

    No results matching ""