ElasticSearch的Ingest节点

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

全部的节点都是默认支持ingest的,任何节点均可以处理ingest请求,也能够建立一个专门的Ingest nodes。能够经过在elasticsearch.yml文件中添加以下配置关闭节点上的ingest功能:node

node.ingest: false

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

要使用某个pipeline,只须要在请求中简单的指定pipeline的id就能够了:elasticsearch

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

能够经过ingest API来定义pipelineide

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

其余pipeline操做,simulate是指对请求的文档进行同时操做ui

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。url

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须要安装到全部节点上。code

相关文章
相关标签/搜索