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

相關文章
相關標籤/搜索