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

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


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



西班牙语分词器

 

Elasticsearch 内置语言的分词器对西班牙语处理使用 spanish,处理过程中一次对单词进行小写转换,剔除停用次,提取词干的操作。


POST _analyze
{
  "analyzer": "spanish",
  "text": "Este es un texto de prueba."
}

内部实现

 

l Tokenizer

l Standard Tokenizer

 

l Token filters

l Lowercase token filter

l Stop token filter

l Keyword marker token filter

l Stemmer token filter

 

Pattern analyzer

 

使用正则表达式匹配分隔符(不是文本内容)对文本进行切分,默认使用 \W+ 非数字字母下划线的字符作为分隔符进行切分。


GET _analyze
{
  "analyzer": "pattern",
  "text":"Heya, we’re Elastic"
}

内部实现

 

l Tokenizer

l Pattern Tokenizer

 

l Token filters

l Lower Case Token Filter

l Stop Token Filter(默认禁用)

 

配置参数

 

pattern 匹配分隔符的正则表达式,默认是 \W+

 

flags Java 中正则表达式匹配标记属性,多个标记属性使用 | 竖线分割。

 

lowercase 是否转小写操作,默认为 true 。

stopwords 配置停用词,可以根据内置语言设置如 _english_ 或者定义停用词数组,默认不启用 _none_。

 

stopwords_path 配置停用词的文件路径,需要放在 Elasticsearch 目录中的 config 目录中。


PUT /pattern_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "pattern_override": {
          "type": "pattern",
          "pattern": """@""",
          "lowercase": true
        }
      }
    }
  }
}
GET pattern_example/_analyze
{
  "analyzer": "pattern_override",
  "text": ["Info@elastic.co"]
}

分词器将下划线和非数字字母字符设置为分隔符,切分后的单词转换小写操作,返回下面的单词数组:

 

[ info, elastic.co ]

Fingerprint analyzer

 

指纹分词器通过指纹算法将输入的文本内容处理后合并为一个字符串存储。算法中按照以下顺序对文本进行以下七步的操作:

 

1、两端去空格。

2、将所有字符进行小写处理。

3、删除所有标点符号和控制字符。

4、西方文本字符 ASCII 编码化。

5、使用空格切分文本。

6、按照字母进行排序和去重操作,如果配置了停用词,停用词将会剔除。

7、将单词使用连接符拼接到一起,默认连接符为空格。


GET _analyze
{
  "analyzer": "fingerprint", 
  "text":"Twinkle,twinkle,little star"
}

通过指纹分词器处理后,返回一个字符串 token:

 

{
  "tokens" : [
    {
      "token" : "little star twinkle",
      "start_offset" : 0,
      "end_offset" : 27,
      "type" : "fingerprint",
      "position" : 0
    }
  ]
}

内部实现

 

l Tokenizer

l Standard Tokenizer

 

l Token filters

l Lower Case Token Filter

l ASCII folding

l Stop Token Filter(默认禁用)

l Fingerprint

 

配置参数

 

separator 拼接 token 使用的字符,默认空格。

 

max_output_size 拼接 token 最大长度,超过长度将会截断,默认255。

 

stopwords 配置停用词,可以根据内置语言设置如 _english_ 或者定义停用词数组,默认不启用 _none_。

 

stopwords_path 配置停用词的文件路径,需要放在 Elasticsearch 目录中的 config 目录中。


PUT fingerprint_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "fp_override": {
          "type": "fingerprint",
           "separator":"|" 
        }
      }
    }
  }
}
GET fingerprint_example/_analyze
{
  "analyzer": "fp_override",
  "text":"Twinkle,twinkle,little star"
}



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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
安全 JavaScript API
企业短信平台怎么选?阿里云短信服务 5 大优势
在选择企业短信平台时,安全合规、到达率、集成便捷性、扩展能力与计费透明是五大关键标准。阿里云短信服务凭借ISO认证的安全体系、99%的高到达率、多语言SDK快速集成、发送失败不计费的透明计费模式,以及AI驱动的智能模板助手,全面满足企业对高效、可靠通信服务的需求。新用户还可免费试用200条短信,轻松开启业务触达。
506 0
企业短信平台怎么选?阿里云短信服务 5 大优势
|
11月前
|
负载均衡 算法 安全
探秘:基于 C++ 的局域网电脑控制软件自适应指令分发算法
在现代企业信息化架构中,局域网电脑控制软件如同“指挥官”,通过自适应指令分发算法动态调整指令发送节奏与数据量,确保不同性能的终端设备高效运行。基于C++语言,利用套接字实现稳定连接和线程同步管理,结合实时状态反馈,优化指令分发策略,提升整体管控效率,保障网络稳定,助力数字化办公。
206 19
|
JavaScript 开发者
|
10月前
|
Linux
Debian下载ISO镜像的方法
步骤 1:访问Debian官方网站 打开你的网络浏览器,在地址栏中输入 https://www.debian.org/ 并回车,这将带你到Debian的官方网站。
1676 6
Debian下载ISO镜像的方法
|
消息中间件 Java Kafka
flowable6.8.0正式发布了
flowable6.8.0正式发布了
922 0
|
Linux 虚拟化 网络架构
Linux命令`arch`详解
`arch`命令在Linux中用于显示系统CPU架构,如x86_64、ARM等。它在跨平台编程、软件包管理和系统故障排除时很有用。通过`arch`,用户能得知系统运行的架构,但注意这可能与物理CPU架构不同,尤其是在虚拟环境中。在某些系统中,`arch`可能是`uname`命令的别名。了解CPU架构对有效管理系统至关重要。
|
存储 Java 编译器
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
648 0
|
JavaScript 前端开发 API
深入浅出:Vue 3 Composition API 的革新之旅
【2月更文挑战第11天】本文将带你深入探索 Vue 3 中的 Composition API,一项革命性的特性,旨在提高代码的组织性和可复用性。我们将通过实际案例,对比传统的 Options API,深入理解 Composition API 如何优化组件逻辑的组织和重用,从而让前端开发变得更加高效和灵活。文章不仅仅是技术指南,更是对前端开发模式思考的一次探索之旅。
|
存储 安全 数据库
自动化密码填充:使用Python提高日常工作效率
自动化密码填充:使用Python提高日常工作效率
342 0

热门文章

最新文章