ElasticSearch IngestNode

  • IngestNode

    有时我们需要在转换文档之前对其进行索引。例如,我们要从文档中删除一个字段或重命名一个字段,然后对其进行索引。这由Ingest节点处理。
    群集中的每个节点都具有提取功能,但也可以对其进行自定义以仅由特定节点进行处理。
  • 涉及的步骤

    摄取节点的工作涉及两个步骤-
    • 创建管道
    • 建立文档

    创建管道

    首先创建一个包含处理器的管道,然后执行该管道,如下所示-
    
    PUT _ingest/pipeline/int-converter
    {
       "description": "将seq字段的内容转换为整数",
       "processors" : [
          {
             "convert" : {
                "field" : "seq",
                "type": "integer"
             }
          }
       ]
    }
    
    运行上面的代码,我们得到以下结果-
    
    {
       "acknowledged" : true
    }
    

    建立文档

    接下来,我们使用管道转换器创建一个文档。
    
    PUT /logs/_doc/1?pipeline=int-converter
    {
       "seq":"21",
       "name":"Tutorialspoint",
       "Addrs":"Hyderabad"
    }
    
    运行上面的代码后,我们得到如下所示的响应:
    
    {
       "_index" : "logs",
       "_type" : "_doc",
       "_id" : "1",
       "_version" : 1,
       "result" : "created",
       "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
       },
       "_seq_no" : 0,
       "_primary_term" : 1
    }
    
    接下来,我们使用GET命令搜索上面创建的文档,如下所示-
    
    GET /logs/_doc/1
    
    运行上面的代码,我们得到以下结果-
    
    {
       "_index" : "logs",
       "_type" : "_doc",
       "_id" : "1",
       "_version" : 1,
       "_seq_no" : 0,
       "_primary_term" : 1,
       "found" : true,
       "_source" : {
          "Addrs" : "Hyderabad",
          "name" : "Tutorialspoint",
          "seq" : 21
       }
    }
    
    您可以在上方看到21变为整数。
  • 没有管道

    现在,我们无需使用管道即可创建文档。
    
    PUT /logs/_doc/2
    {
       "seq":"11",
       "name":"Tutorix",
       "Addrs":"Secunderabad"
    }
    
    
    GET /logs/_doc/2
    
    运行上面的代码,我们得到以下结果-
    
    {
       "_index" : "logs",
       "_type" : "_doc",
       "_id" : "2",
       "_version" : 1,
       "_seq_no" : 1,
       "_primary_term" : 1,
       "found" : true,
       "_source" : {
          "seq" : "11",
          "name" : "Tutorix",
          "Addrs" : "Secunderabad"
       }
    }
    
    您可以在上面看到11是一个不使用管道的字符串。