带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(8)

简介: 带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(8)


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(7) https://developer.aliyun.com/article/1229768


配置项

 

min_gram 切分字符最小长度,默认是1。

 

max_gram 切分字符最大长度,默认是2。

 

Edge n-gram token filter

 

edge_ngram 根据 N 元语法对单词进行切分,切分方式和 ngram 最大的区别是:切分时根据设置的切分方向(默认单词开头)进行大小为 N 的滑动窗口操作,而 ngram 切分是针对每一个字符进行滑动窗口的操作。默认情况下 edge_ngram 创建最小长度1,最大长度2的字节序列。单词 hello 会被切分为 [h,he],适用于前缀匹配。


image.png


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
   {
      "type": "edge_ngram"
    }
  ],
  "text": [  "hello"  ]
}

 配置项

 

min_gram 切分字符最小长度,默认是1。

 

max_gram 切分字符最大长度,默认是2。

 

side 指定切分方向,分为 front 头部和 back 尾部,默认 front。


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "edge_ngram",
      "min_gram":3,
      "max_gram":4,
      "side":"back"
    }
  ],
  "text": [ "hello" ]
}
#Response
[ llo, ello ]

Pattern_replace token filter

 

pattern_replace 过滤器将单词中正则表达式匹配到的内容替换为新的值。


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "pattern_replace",
     "pattern":"'re",
     "replacement":" Are"
    }
  ],
  "text": [
    "Hey! We're Elastic"
  ]
}
#Response
[ Hey, We Are, Elastic ]

配置项

 

all 是否所有匹配上的内容进行替换,默认为 true,设置为 false 时仅替换每个单词中第一个匹配上的内容。

 

pattern 用于匹配字符的正则表达式。

 

replacement 替换的目标字符串,可以引用正则表达式匹配到组。

 

Predicate script token filter

 

predicate_token_filter 过滤器和 condiction 过滤器一样都是通过定义的 painless 脚本对单词进行过滤,不同的是此过滤器会将不满足条件的单词删除。


GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "predicate_token_filter",
      "script": {
        "source": """
          token.term.length() > 3
        """
      }
    }
  ],
  "text": "Hey! We are Elasic "
}
#Response
[ Elastic ]

配置项

 

script 定义 painless 脚本对单词进行过滤,不符合条件的单词将会被删除。

 

Stemmer token filter

 

stemmer 过滤器根据一系列的算法规则对不同语种的单词进行词干提取处理,如 searching 处理后会还原为原型 search。通过算法处理单词的词干效率上更高,但对于不规则单词变形在提取上和平时看到的单词拼写会有一些差距。默认使用 porter stemming 算法对英文进行处理。


配置项

 

language 指定语言算法对单词进行处理,默认使用 _english_。

 

其它语种使用参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-stemmer-tokenfilter.html#analysis-stemmer-tokenfilter-configure-parms

 

Stop token filter

 

stop 过滤器将删除单词中的停用词


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "stop"
    }
  ],
  "text": [
    "Hey! We are Elastic "
  ]
}
#Response
[ Hey, We, Elastic ]



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(9) https://developer.aliyun.com/article/1229765

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
12月前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
297 8
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
前端开发 JavaScript Java
SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改
SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改
200 1
|
运维 Kubernetes Cloud Native
还在为多集群管理烦恼吗?OCM来啦!
在云计算领域如果还有人没听过 Kubernetes,就好像有人不知道重庆火锅必须有辣椒。Kubernetes 已经像手机上的 Android,笔记本上的 Windows 一样成为管理数据中心事实上的标准平台了。围绕着 Kubernetes,开源社区构建了丰富的技术生态,无论是 CI/CD、监控运维,还是应用框架、安全反入侵,用户都能找到适合自己的项目和产品。可是,一旦将场景扩展到多集群、混合云环境时,用户能够依赖的开源技术就屈指可数,而且往往都不够成熟、全面。
还在为多集群管理烦恼吗?OCM来啦!
|
缓存 监控 测试技术
优化PHP应用性能的关键技巧与实践
提升PHP应用性能是开发者关注的重点之一,本文探讨了几种有效的优化技巧和实际应用策略,包括缓存策略的选择、代码优化建议以及服务器端配置的最佳实践,旨在帮助开发者有效提升PHP应用的运行效率和响应速度。【7月更文挑战第2天】
81 0
|
数据采集 SQL 监控
整体技术流程-系统架构图|学习笔记
快速学习整体技术流程-系统架构图
380 0
整体技术流程-系统架构图|学习笔记
|
NoSQL 关系型数据库 MySQL
浅析分布式服务架构-CAP理论
基本概念 一致性(C,Consistency) :在分布式系统中的所有数据备份,在同一时刻,是否同样的值。 可用性(A,Availability) :在集群中,一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性) 分区容忍性(P,Partition tolerance) :在遇到任何网络分区故障的时候,仍然能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。(即在节点间通信失败时,保证系统不受影响)
|
算法 搜索推荐
归并排序
归并排序
149 0
归并排序
|
存储 算法
【刷题记录】29. 两数相除
【刷题记录】29. 两数相除
220 0
【刷题记录】29. 两数相除
|
前端开发 Android开发
带你封装MVP架构(上)|青训营笔记(一)
我们做一个 MVP 架构的封装,主要其相对于MVC更加解耦,能让开发人员在编写代码的时候更加高效和舒服。
LeetCode每日一题——面试题 17.19. 消失的两个数字
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?
126 0

热门文章

最新文章