带你读《Elastic Stack 实战手册》之30:——3.4.2.15.ingest pipelines(2)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《Elastic Stack 实战手册》之30:——3.4.2.15.ingest pipelines(2)


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.15.ingest pipelines(1) https://developer.aliyun.com/article/1230173


常用的 Processors 如下

 

更多 Pipeline Processors 参考更多https://www.elastic.co/guide/en/elasticsearch/reference/master/processors.html 

 

Trim

 

去除空格,如果是字符串类型的数组,数组中所有字符串都会被替换空格处理


Split

 

切分字符串,使用指定切分符,切分字符串为数组结构,只作用与字符串类型

 

Rename

 

重命名字段

 

Foreach

 

对一组数据进行相同的预处理,可以使用 Foreach

 

Lowercase / Uppercase

 

对字段进行大小写转换

 

Script

 

使用脚本语言进行数据预处理

 

Gsub

 

对字符串进行替换

 

Append

 

添加数据到数组

 

Set

 

设置字段值


Remove

 

移除字段

 

Trim

 

去除字符串中的空格


PUT _ingest/pipeline/trim_pipeline
{
  "processors": [
    {
      "foreach": {
        "field": "message",
        "processor": {
          "trim": {
            "field": "_ingest._value"
          }
        }
      }
    }
  ]
}
POST _ingest/pipeline/trim_pipeline/_simulate
{
  "docs": [
    {
      "_source": {
        "message": [
          "car222 ",
          " auto2222 "
        ]
      }
    }
  ]
}
#返回:
{
  "docs" : [
    {
      "doc" : {
        "_index" : "_index",
        "_type" : "_doc",
        "_id" : "_id",
        "_source" : {
          "message" : [
            "car222",
            "auto2222"
                   ]
        },
        "_ingest" : {
          "_value" : null,
          "timestamp" : "2021-04-28T13:19:13.542743Z"
        }
      }
    }
  ]
}

 Split / Foreach

 

切分字符串,使用指定切分符,切分字符串为数组结构,只作用于字符串类型


PUT _ingest/pipeline/split_pipeline
{
  "processors": [
    {
      "foreach": {
        "field": "message",
        "processor": {
          "split": {
            "field": "_ingest._value",
            "separator": " "
          }
        }
      }
    }
  ]
}
#测试
POST _ingest/pipeline/split_pipeline/_simulate
{
  "docs": [
    {
      "_source": {
        "message": [
          "car222 aaa",
          " auto2222 aaaa bbb"
        ]
      }
    }
  ]
}
#返回,可以看到 message 按照空格切分为了多个字符串数组
{
  "docs" : [
    {
      "doc" : {
        "_index" : "_index",
        "_type" : "_doc",
        "_id" : "_id",
        "_source" : {
          "message" : [
            [
              "car222",
              "aaa"
            ],
            [
              "",
              "auto2222",
              "aaaa",
              "bbb"
            ]
          ]
        },
        "_ingest" : {
          "_value" : null,
          "timestamp" : "2021-04-28T13:28:20.762312Z"
        }
      }
    }
  ]
}

Rename

 

重命名一个字段, rename 往往和 reindex 结合使用


POST goods_info_comment_message/_bulk
{"index":{"_id":1}}
{"message":"美 国苹果 "}
{"index":{"_id":2}}
{"message":"山东 苹果 "}
#定义 rename_pipeline
PUT _ingest/pipeline/rename_pipeline
{
  "processors": [
    {
      "rename": {
        "field": "message",
        "target_field": "message_new"
      }
    }
  ]
}
#重建 index
POST _reindex
{
  "source": {
    "index": "goods_info_comment_message"
  },
  "dest": {
    "index": "goods_info_comment_message_new",
    "pipeline": "rename_pipeline"
  }
}
#查询 mapping
GET goods_info_comment_message_new/_mapping
#返回
{
  "goods_info_comment_message_new" : {
    "mappings" : {
      "properties" : {
        "message_new" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.15.ingest pipelines(3) https://developer.aliyun.com/article/1230171

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
11月前
|
存储 C语言
C语言中a 和&a 有什么区别
在C语言中,"a" 是一个变量的名字,代表存储在内存中的某个值。而"&a" 则是获取该变量的内存地址,即变量a在计算机内存中的具体位置。这两者的主要区别在于:"a" 操作的是变量中的值,"&a" 操作的是变量的内存地址。
1340 23
|
8月前
|
缓存 IDE Java
JVM核心知识体系
本文从JVM的最小元素类的结构出发,介绍类加载器的工作原理和应用场景,思考类加载器存在的意义。进而描述JVM逻辑内存的分布和管理方式,同时列举常用的JVM调优工具和使用方法,最后介绍高级特性JDPA框架和字节码增强技术,实现热替换。
|
自然语言处理 JavaScript 测试技术
GSAP基础学习
GSAP基础学习
163 0
GSAP基础学习
|
SQL 监控 关系型数据库
mysql统计数据库大小
通过这些方法,数据库管理员可以有效地监控和规划MySQL数据库的存储需求,确保数据库的稳定运行。
481 3
|
缓存 前端开发 测试技术
什么是七星创客系统丨七星创客系统开发规则玩法/设计方案/逻辑需求/案例项目/源码功能
七星创客系统开发指南是一个帮助开发人员理解并完成七星创客系统的开发任务的指南。以下是一个简要的开发指南需求:
|
运维 Kubernetes API
Kubernetes 入门&进阶实战
Kubernetes 入门&进阶实战
Kubernetes 入门&进阶实战
Matlab|【免费】基于半不变量的概率潮流计算
Matlab|【免费】基于半不变量的概率潮流计算
|
搜索推荐 C++
十大经典排序算法整理汇总(附代码)
十大经典排序算法整理汇总(附代码)
129 0
|
存储 SQL 数据库
SQL中的发布与订阅(二)
发布订阅主要用来做数据库的读写分离,当单台数据库的压力太大时,可以考虑这种方案。一主多从,主服务器的数据库只管写入,其他的数据库都是只读也是一种很好的方案,当然你也可以用它来实现在线备份数据的功能。
SQL中的发布与订阅(二)
|
分布式计算 大数据 Hadoop
HAS-插件式Kerberos认证框架
HAS (Hadoop Authentication Service), 致力于解决开源大数据服务和生态系统的认证支持。目前开源大数据(Hadoop/Spark)在安全认证上只内置支持了Kerberos方式,HAS提出了一种新的认证方式, 通过与现有的认证和授权体系进行对接,使得在Hadoop/Spark在上面支持Kerberos以外的认证方式变成可能,并对最终用户简化和隐藏Kerberos的复杂性。
8735 0