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

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

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



配置项

 

separator 单词连接符,默认使用空格。

 

max_output_size 文本输出最大长度,超过长度将不会返回,默认255。

 

GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "fingerprint",
      "separator": "-",
    }
  ],
  "text": "A good cook  could cook cookies?"
}
#Response
[ A-cook-cookies-could-good ]

Keyword marker token filter

 

keyword_marker 过滤器用于标注不需要做词干提取的单词列表,此过滤器执行顺序在词干提取相关的过滤器之前。


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type":"keyword_marker",
      "keywords":["loves","travelling"]
    },
    "stemmer"
    ],
    "text": ["Tony loves dancing and travelling"]
}
#Response
[ Toni, loves, danc, and, travelling ]

配置项

 

ignore_case 标注单词是否忽略大小写,默认 false。

 

keywords 指定不需要做词干提取的单词列表。

 

keywords_path 指定不做词干提取单词的文件目录,该文件需要保存在 Elasticsearch 目录下的 config 中,文件格式使用 utf-8,每行一个单词。


keywords_pattern 使用正则表达式匹配到的单词不进行词干提取。

 

需要注意 keywords,keywords_path 和 keywords_pattern 不能同时指定,设置其中一个即可。

 

Length token filter

 

length 过滤器会只保留字符长度在设定区间的单词,如返回长度大于3小于5的单词。

GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "length",
      "max": 5,
      "min": 3
    }
  ],
    "text": "Hey,We Are Elasic"
}
#Response
[ Hey, Are ]


配置项

 

min(非必填)最小字符长度。

 

max(非必填) 最大字符长度。

 

Limit token count

 

limit 过滤器用于限制文本返回的单词数量,默认只返回第一个单词。


GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "limit",
      "max_token_count":2    #1
    }
  ],
   "text": "Heya,We are Elasic "
}
#Response
[ Heya, We ]


#1 显示返回前两个单词。


配置项

 

max_token_count 限定返回单词数量,默认为1。

 

Lowercase token filter

 

lowercase 过滤器会根据语言把单词转换为小写字母,默认使用英文。


GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "lowercase"
    }
  ],
  "text": "Heya,We are Elasic "
}
#Response
[ heya, we, are, elastic ]

配置项

 

language 针对特定语言的小写转换,参数支持 Greek,Irish,Turkish。

 

Uppercase token filter

 

uppercase 过滤器会将单词转换为大写字母。


GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "uppercase"
    }
  ],
  "text": "Heya,We are Elasic "
}
#Response
[ HEYA, WE, ARE, ELASTIC ]

N-gram token filter

 

ngram 根据 N 元语法对单词进行切分,目的是将单词里每一个字符进行大小为 N 的滑动窗口操作,形成了长度是 N 的字节片段序列,切分的结果长可用于模糊匹配。默认最小长度1,最大长度2。 当长度差大于1时,需要为索引设置 index.max_ngram_diff 属性。


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "ngram",
      "min_gram":2,
      "max_gram":3
    }
  ],
  "text": [  "cat"  ]
}
#Response
[ ca, cat, at ]



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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
物联网 Java Linux
luajit简介
luajit简介
766 2
|
8月前
|
数据可视化 数据挖掘 定位技术
数据可视化发展历程
数据可视化是数据分析中发展迅速且引人注目的领域之一,它将科学、技术与艺术结合,通过图形讲述数据背后的故事。从早期的统计图表到现代的交互式可视化,它经历了多个发展阶段,逐步成为理解复杂数据的重要工具。如今,数据可视化已广泛应用于科研、医疗、经济等多个领域,成为沟通与决策的关键手段。
332 0
|
9月前
|
人工智能 自然语言处理 搜索推荐
从扣子空间看 AI 智能体:与豆包、Kimi 较量及未来走向
本文探讨了当前 AI 智能体的发展现状、功能特点及其与传统 AI 大模型的差异,分析了其使用门槛与未来发展趋势,展望了其在多领域应用的潜力与挑战。
2176 0
|
人工智能 资源调度 自然语言处理
钉钉项目 Teambition AI 能力重塑项目管理100种可能!
钉钉项目Teambition AI迎来重磅升级,通义千问与DeepSeek两大模型助力AI项目管理。从项目规划、任务创建到执行建议、字段管理,再到周报总结和数据分析,Teambition AI贯穿项目全流程,重塑项目管理100种可能。AI技术赋能项目管理智能化,提升团队协作效率,确保项目进度精准把控,让任务分配、资源调度和风险管理更加轻松高效。
钉钉项目 Teambition AI 能力重塑项目管理100种可能!
|
Java 数据库连接 Spring
使用Spring Boot实现数据脱敏
通过上述步骤,您可以使用Spring Boot实现数据脱敏功能。在实际应用中,可以根据具体需求调整脱敏逻辑和策略,以确保敏感数据在传输和展示过程中得到有效保护。这种方法不仅可以提高数据安全性,还能满足合规性要求,保护用户隐私。
1057 19
|
UED 开发者
鸿蒙next版开发:ArkTS组件通用属性(运动模糊)
在HarmonyOS 5.0中,ArkTS引入了运动模糊功能,允许开发者为组件添加动态模糊效果,增强视觉表现。本文详细解读了运动模糊的属性和使用方法,并提供了示例代码。运动模糊可增强视觉效果、提升用户体验和实现动态效果,适用于多种场景。
507 2
|
Web App开发 Rust 前端开发
常见浏览器内核
常见浏览器内核包括:Blink(用于 Chrome、Edge 等),注重性能与现代网页支持;WebKit(用于 Safari 和早期 Chrome),强调高效能;Gecko(用于 Firefox),支持强大扩展;Trident(用于 IE,已被 Edge 替代);EdgeHTML(用于早期 Edge,现已转为 Blink);Servo(实验性,基于 Rust)。这些内核负责渲染网页内容、处理 CSS 和 JavaScript,直接影响用户体验,并随技术发展持续演进。
|
编解码 程序员 图形学
从零开始掌握MAYA 2022:打造视觉创意的艺术大师之路
从零开始掌握MAYA 2022:打造视觉创意的艺术大师之路
538 0
|
算法 数据库 存储
概要设计与详细设计的区别
概要设计与详细设计的区别     概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
14490 0
|
消息中间件 缓存 开发工具
一套分布式IM即时通讯系统的技术选型和架构设计
为了更好的理解分布式IM即时通讯系统的设计,我站在架构师的角度,在充分了解系统需求、业务流程和技术流程后,从全局视角为系统设定方案目标,对技术方案进行选型,对系统进行总体架构设计和分层架构设计,并梳理清楚发送消息的交互链路、单聊和群聊的交互链路。希望对你有帮助。
1087 0

热门文章

最新文章

下一篇
开通oss服务