Elasticsearch:analyzer(分析器)

一、概述

可用于将字符串字段转换为单独的术语:

  • 添加到倒排索引中,以便文档可搜索。
  • 级查询(如 生成搜索词的 match查询)使用。

分析器分为内置分析器和自定义的分析器,它们都是由若干个字符过滤器(character filter)+ 一个分词器(tokenizers)+ 若干个词项过滤器(token filter)组成:
在这里插入图片描述

二、内置分析器和自定义分析器

三、字符过滤器(character filter)

官网:https://www.elastic.co/guide/en/elasticsearch/reference/8.6/analysis-charfilters.html
字符过滤器将原始文本作为字符流接收,并可以通过添加、删除或更改字符来转换该流。例如,字符过滤器可用于将印度-阿拉伯数字 (٠‎١٢٣٤٥٦٧٨‎٩‎) 转换为阿拉伯-拉丁数字 (0123456789),或从流中剥离 HTML 元素。
Elasticsearch 有许多内置的字符过滤器,可用于构建自定义分析器。

1、HTML Strip Character Filter

html_strip会删除像这样的 HTML 元素,并解码像这样的 HTML 实体&。

2、Mapping Character Filter

mapping用指定的替换项替换任何出现的指定字符串。

3、Pattern Replace Character Filter

pattern_replace用指定的替换字符替换任何与正则表达式匹配的字符。

四、分词器(tokenizers)

分词器接收字符流,将其分解为单个标记,然后输出。例如whitespace分词器看到任何空格时都会将文本进行分解,它会将文本由“Quick brown fox!”转换为[Quick, brown, fox!]。
Elasticsearch 有许多内置的标记器,可用于构建 自定义分析器:

  • 面向词的分词器:

    • Standard Tokenizer
      分词器standard根据 Unicode 文本分割算法的定义,按照单词边界将文本划分为术语。它会删除大多数标点符号。它是大多数语言的最佳选择。
    • Letter Tokenizer
      当分词器letter遇到非字母的字符时,它就会将文本分成多个术语。
    • Lowercase Tokenizer
      lowercase类似letter,当遇到非字母的字符时,它会将文本分成多个术语,但它也会将所有术语转换为小写。
    • Whitespace Tokenizer
      whitespace遇到任何空格字符时,它就会将文本分成多个术语。
    • UAX URL Email Tokenizer
      uax_url_email类似于standard,只是它将 URL 和电子邮件地址识别为单个标记。
    • Classic Tokenizer
      classic是一个基于语法的英语标记器。
    • Thai Tokenizer
      thai将泰语文本分割成单词。
  • 部分单词分词器

    • N-Gram Tokenizer
      它首先将文本分解为单词,然后在单词上移动的滑动窗口 - 指定长度的连续字符序列。
    • Edge N-Gram Tokenizer
  • 结构化文本分词器

    • Keyword Tokenizer
      接受给定的任何文本,并输出与单个术语完全相同的文本。它可以与标记过滤器结合使用,例如lowercase规范化分析的术语。
    • Pattern Tokenizer
      pattern使用正则表达式,在文本与单词分隔符匹配时将其拆分为术语,或者将匹配的文本捕获为术语。
    • Simple Pattern Tokenizer
      simple_pattern使用正则表达式捕获匹配的文本作为术语。它使用正则表达式功能的受限子集,并且通常比pattern标记器更快。
    • Char Group Tokenizer
      char_group可通过要拆分的字符集进行配置。
    • Simple Pattern Split Tokenizer
      simple_pattern_split使用与标记器相同的受限正则表达式子集simple_pattern,但在匹配处拆分输入,而不是将匹配项作为术语返回。
    • Path Tokenizer
      path_hierarchy采用类似文件系统路径的分层值,在路径分隔符上进行拆分,并为树中的每个组件发出一个术语,例如/foo/bar/baz→ [/foo, /foo/bar, /foo/bar/baz ]。

五、词项过滤器(token filter)

官网:https://www.elastic.co/guide/en/elasticsearch/reference/8.6/analysis-tokenfilters.html
词项过滤器从分词器接收分词流,并且可以修改词项(例如小写)、删除词项(例如删除停用词)或添加词项(例如同义词)。Elasticsearch有许多内置的词项过滤器,可以使用它来构建自定义分词器:

1、Apostrophe token filter

2、ASCII folding token filter

3、CJK bigram token filter

4、CJK width token filter

5、Classic token filter

6、Common grams token filter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/497827.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3使用video-player实现视频播放(可拖动视频窗口、调整大小)

1.安装video-player npm install video.js videojs-player/vue --save在main.js中配置全局引入 // 导入视频播放组件 import VueVideoPlayer from videojs-player/vue import video.js/dist/video-js.cssconst app createApp(App) // 视频播放组件 app.use(VueVideoPlayer)2…

SpringBoot + vue 管理系统

SpringBoot vue 管理系统 文章目录 SpringBoot vue 管理系统 1、成品效果展示2、项目准备3、项目开发 3.1、部门管理 3.1.1、前端核心代码3.1.2、后端代码实现 3.2、员工管理 3.2.1、前端核心代码3.2.2、后端代码实现 3.3、班级管理 3.3.1、前端核心代码3.3.2、后端代码实现 …

解决Springboot整合Shiro自定义SessionDAO+Redis管理会话,登录后不跳转首页

解决Springboot整合Shiro自定义SessionDAORedis管理会话,登录后不跳转首页 问题发现问题解决 问题发现 在Shiro框架中,SessionDAO的默认实现是MemorySessionDAO。它内部维护了一个ConcurrentMap来保存session数据,即将session数据缓存在内存…

评分模型在路网通勤习惯分析中的应用——提出问题(1)

1、问题的由来、目标和意义 最近一段时间和公司其它业务部门讨论时,发现一个有趣的交通路网问题,车辆从S点行驶到V点共用时40分钟,这段时间内路网中的卡口摄像头识别到了车辆通过的信息。如下图所示: 设计师需要通过这些有限的路…

每天40分玩转Django:Django表单集

Django表单集 一、知识要点概览表 类别知识点掌握程度要求基础概念FormSet、ModelFormSet深入理解内联表单集InlineFormSet、BaseInlineFormSet熟练应用表单集验证clean方法、验证规则熟练应用自定义配置extra、max_num、can_delete理解应用动态管理JavaScript动态添加/删除表…

Elasticsearch检索方案之一:使用from+size实现分页

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 快速掌握Elasticsearch检索之二:滚动查询(scrool)获取全量数据 Elasticsearch检索之三:官方推荐方案search_after检索实现 前面两篇文章介绍了elasticsearch以及Kibana的安装&…

Unity 实现Canvas显示3D物体

新建一个UI相机,选择渲染层为UI 将主相机的渲染层去掉UI层 、 将Canvas的RenderMode设置为Screen Space - Camera,将RenderCamera设置为UI相机 新建3D物体的UI父物体,并将3D物体的层级设置为UI层 适当的放缩3DObjParent,让3D物体能显示出来…

termux-boot安卓开机自动启动应用

termux安装 github 蓝奏云 v119.1 termux-boot安装 github 蓝奏云 v0.8.1 安装 给权限运行加锁后台 am启动应用命令 am start -n 包名/启动项获取包名和启动入口(图中app为爱玩机工具箱) 例 简黑时钟蓝奏云 包名com.hm.jhclock 桌面启动项com.hm.jh…

mybatis-plus自动填充时间的配置类实现

mybatis-plus自动填充时间的配置类实现 在实际操作过程中,我们并不希望创建时间、修改时间这些来手动进行,而是希望通过自动化来完成,而mybatis-plus则也提供了自动填充功能来实现这一操作,接下来,就来了解一下mybatis…

【Agent】Chatbot、Copilot与Agent如何帮助我们的提升效率?

人工智能(AI)技术的迅猛发展正在深刻改变我们的生活和工作方式。你是否曾想过,未来的工作场景会是什么样子?AI的崛起不仅仅是科技的进步,更是我们生活方式的革命。今天,我们将深入探讨三种主要的AI能力&…

爱思唯尔word模板

爱思唯尔word模板 有时候并不一定非得latex https://download.csdn.net/download/qq_38998213/90199214 参考文献书签链接

【Raven1靶场渗透】

文章目录 一、基础信息 二、信息收集 三、暴力破解 四、提权 一、基础信息 Kali IP :192.168.20.146 靶机IP :192.168.20.153 二、信息收集 nmap -sS -sV -p- -A 192.168.20.153 开放了22,80,111,58305端口 访…

QGIS二次开发(地图符号库操作)

实习三 地图符号库操作 3.1 任务要求 基于QGIS,实现地图符号的设计/存储与显示;基于QGIS实现一个点、线、面shp矢量图层文件的显示。通过设置引用的符号,改变矢量图层的显示效果;可编辑地图的符号库汇中的点符号、线符号、面符号…

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集VA-I-FGSM介绍相关定义算法流程 VAI-FGSM代码实现VAI-FGSM算法实现攻击效果 代码汇总vaifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexNet对…

Elasticsearch:使用 Ollama 和 Go 开发 RAG 应用程序

作者:来自 Elastic Gustavo Llermaly 使用 Ollama 通过 Go 创建 RAG 应用程序来利用本地模型。 关于各种开放模型,有很多话要说。其中一些被称为 Mixtral 系列,各种规模都有,而一种可能不太为人所知的是 openbiollm,这…

实战案例——ZooKeeper集群部署(新手教程超详细)

案例目标 了解ZooKeeper分布式应用程序协调服务使用3台机器搭建ZooKeeper集群使用ZooKeeper集群 案例分析 规划节点 ZooKeeper集群节点规划 Ip 主机名 节点 192.168.110.10 zookeeper1 集群节点 192.168.110.20 zookeeper2 集群节点 192.168.110.30 zookeeper3 …

上手教程:使用Terraform打造弹性VPC架构

最近Akamai发布的虚拟专用云(VPC)功能提供了一种隔离的网络,让云资源可以用私密的方式进行通信。 关于Akamai VPC功能,最棒的地方在于它有着极高的灵活性。用户可以通过Cloud Manager、开发人员工具(如CLI&#xff09…

基于python的扫雷游戏

游戏 游戏目标: 揭开所有非地雷的格子。 如果揭开地雷,游戏失败。 使用标记功能(🚩)来标记可能的地雷位置。 格子类型: 空白格子:表示周围没有地雷。 数字格子:显示周围 8 个格子…

利用Java爬虫速卖通按关键字搜索AliExpress商品

在这个信息爆炸的时代,数据的价值日益凸显。对于电商领域的从业者来说,能够快速获取商品信息成为了一项重要的技能。速卖通(AliExpress)作为全球领先的跨境电商平台,拥有海量的商品数据。本文将介绍如何使用Java语言编…

Java中三大构建工具的发展历程(Ant、Maven和Gradle)

🐸 背景 我们要写一个Java程序,一般的步骤是编译,测试,打包。 这个构建的过程,如果文件比较少,我们可以手动使用java, javac,jar命令去做这些事情。但当工程越来越大,文件越来越多&#xff0c…