ElasticSearch的Ingest节点

ElasticSearch的ingest节点用来在真正对文档进行索引之前做预处理。

所有的节点都是默认支持ingest的,任何节点都可以处理ingest请求,也可以创建一个专门的Ingest nodes。可以通过在elasticsearch.yml文件中添加如下配置关闭节点上的ingest功能:

node.ingest: false

为了在真正对文档进行索引之前对文件进行预处理,通过定义包含了多个process的pipeline来实现。每个process实现了对文档的某种转换,如移除某个字段,重命名某个字段等。

要使用某个pipeline,只需要在请求中简单的指定pipeline的id就可以了:

PUT my-index/_doc/my-id?pipeline=my_pipeline_id
{
  "foo": "bar"
}

可以通过ingest API来定义pipeline

PUT _ingest/pipeline/my-pipeline-id
{
  "description" : "describe pipeline",
  "processors" : [
    {
      "set" : {
        "field": "foo",
        "value": "bar"
      }
    }
  ]
}

其他pipeline操作,simulate是指对请求的文档进行同时操作

GET _ingest/pipeline/my-pipeline-id

DELETE _ingest/pipeline/my-pipeline-id

//对下面的dcos进行pipeline操作,pipeline是该simulate请求里面提供的
POST _ingest/pipeline/_simulate
{
  "pipeline" : {
    // pipeline definition here
  },
  "docs" : [
    { "_source": {/** first document **/} },
    { "_source": {/** second document **/} },
    // ...
  ]
}

//对下面的dcos进行pipeline操作,pipeline是已经存在的
POST _ingest/pipeline/my-pipeline-id/_simulate
{
  "docs" : [
    { "_source": {/** first document **/} },
    { "_source": {/** second document **/} },
    // ...
  ]
}

pipeline里面主要包含2部分,一部分是描述,另外就是process。

process有多种: append, Convert ,Data, Data Index Name, Fail,Foreach,Grok,Gsub,Join,Json,KV, Lowercase,  Remove, Rename, Script,Set,Split,Sort,Trim, Uppercase ,   Dot Expander,  URL Decode,  用户也可以定制自己的process,但定制的process需要安装到所有节点上。

猜你喜欢

转载自my.oschina.net/u/2449787/blog/1635255