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"
        }
      }
    }
  }
}

提示如下错误信息:

相关推荐
YDS8298 小时前
SpringCloud —— Elasticsearch入门详解
spring·elasticsearch·spring cloud
简佐义的博客8 小时前
转录组数据分析实战,仅需99元(视频版)
大数据·人工智能·数据挖掘·数据分析·音视频
APO Research8 小时前
工业连接件的隐形升级:杆端轴承正在从“标准件”走向“结构安全件”
大数据·安全·#工业零部件·#机械设计·#工业自动化·#杆端轴承·#机械结构件
YangYang9YangYan8 小时前
2026高职财税大数据应用学数据分析的技术价值与应用前景
大数据·数据挖掘·数据分析
l1t9 小时前
在ARM64 KyLin计算机上安装llama.cpp
大数据·llama·kylin
福客AI智能客服9 小时前
电商店铺效率升级:智能客服系统如何重构服务与转化逻辑
大数据·重构
偷吃的耗子9 小时前
大数据报表系统技术方案与业务方案设计
大数据·架构
2601_9495394510 小时前
家用插混SUV实测研究:聚焦电池安全与质保,为家庭选型提供参考
大数据
康康的AI博客10 小时前
优化工程系统稳定性:DMXAPI在可靠性工程中的应用
大数据
故事和你9110 小时前
sdut-程序设计基础Ⅰ-实验二选择结构(1-8)
大数据·开发语言·数据结构·c++·算法·优化·编译原理