当前位置: 首页 > news >正文

Elasticsearch:normalizer

一、概述

‌Elastic normalizer‌是Elasticsearch中用于处理keyword类型字段的一种工具,主要用于对字段进行规范化处理,确保在索引和查询时保持一致性。

Normalizer与analyzer类似,都是对字段进行处理,但normalizer不会对字段进行分词,即没有tokenizer。它主要用于keyword类型的字段(不能再其他字段设置normalizer),可以在索引和查询时对字段值进行额外的处理,如转换为小写。例如,可以使用normalizer将字段值转换为小写,这在处理大小写不敏感的查询时非常有用‌。

二、normalizer的属性

normalizer仅仅有 char filters和token filters,具有的filter为:arabic_normalization, asciifolding, bengali_normalization, cjk_width, decimal_digit, elision, german_normalization, hindi_normalization, indic_normalization, lowercase, pattern_replace, persian_normalization, scandinavian_folding, serbian_normalization, sorani_normalization, trim, uppercase.
其中lowercase为Elasticsearch内置filter,其他的filter需要自定义配置。

自定义的chat filter和filter:

PUT index
{"settings": {"analysis": {"char_filter": {"quote": {"type": "mapping","mappings": ["« => \"","» => \""]}},"normalizer": {"my_normalizer": {"type": "custom","char_filter": ["quote"],"filter": ["lowercase", "asciifolding"]}}}},"mappings": {"properties": {"foo": {"type": "keyword","normalizer": "my_normalizer"}}}
}

三、验证只有keyword类型可以设置normalizer

创建如下mapping,并将类型为text的name字段设置上normalizer

PUT test_index
{"mappings": {"properties": {"name": {"type": "text","analyzer": "my_analyzer", "fields": {"keyword": {"type": "keyword","normalizer": "my_normalizer"}}},"title": {"type": "text","analyzer": "standard","fields": {"keyword": {"type": "keyword"}}}}},"settings": {"analysis": {"normalizer": {"my_normalizer": {"filter": ["lowercase"],"char_filter": []}},"analyzer": {"my_analyzer": {"filter":  ["lowercase"],"tokenizer": "standard"}}}}
}

提示如下错误信息:
在这里插入图片描述

http://www.lryc.cn/news/510931.html

相关文章:

  • 动态规划子序列问题系列一>等差序列划分II
  • 48页PPT|2024智慧仓储解决方案解读
  • 低代码开源项目Joget的研究——Joget8社区版安装部署
  • upload-labs关卡记录15
  • 1.使用 Couchbase 数仓和 Temporal(一个分布式任务调度和编排框架)实现每 5 分钟的增量任务
  • matrix-breakout-2-morpheus
  • 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
  • 【RabbitMQ的死信队列】
  • 掌握软件工程基础:知识点全面解析【chap02】
  • 公路边坡安全监测中智能化+定制化+全面守护的应用方案
  • 闲谭Scala(3)--使用IDEA开发Scala
  • Go语言反射从入门到进阶
  • 【基于rust-wasm的前端页面转pdf组件和示例】
  • ARM64 Windows 10 IoT工控主板运行x86程序效率测试
  • 开放世界目标检测 Grounding DINO
  • easegen将教材批量生成可控ppt课件方案设计
  • 2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)
  • 【虚拟机网络拓扑记录】
  • 【单片机通讯协议】—— 常用的UART/I2C/SPI等通讯协议的基本原理与时序分析
  • Vue3 核心语法
  • LLaMA-Factory GLM4-9B-CHAT LoRA 指令微调实战
  • GTM023 W.H.Greub线性代数经典教材:Linear Algebra
  • 交换机与路由器的区别
  • springboot502基于WEB的牙科诊所管理系统(论文+源码)_kaic
  • soular使用教程
  • 纯div+css+js弹出窗
  • 一篇文章学会HTML
  • QGIS二次开发(插件开发)
  • Web防火墙和下一代防火墙的区别
  • Linux:alias别名永久有效