带你读《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并实现搜索。  
相关文章
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
484 8
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
算法 大数据 程序员
1月14日云栖精选夜读 | 如何“神还原”数据中心? 阿里联合NTU打造了工业级精度的仿真沙盘!
阿里妹导读:如何保障数据中心的稳定运行,是多年来一直困扰业界的难题。机房环境如果发生未预期变化,可能造成难以估计的损失。所以我们希望能构建一个“变更沙盘”,在真实变更之前,操作人员可以先在沙盘中进行试变更,若变更效果在预期内,再对真实环境进行变更,从而尽可能减少变更导致的机房故障。
3243 0
|
14天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5585 28
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
9天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1134 2
|
6天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
863 1
|
16天前
|
人工智能 自然语言处理 供应链
|
22天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3808 15

热门文章

最新文章