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

提示如下错误信息:

相关推荐
OFIRM碳基硅基36 分钟前
西游金蝉劫 IP · 之 《金蝉子前传渡缘劫》电影 20 亿票房触发 · 项目专项扶持协议 总览 拉格朗日光影动画-西游金蝉劫项目组
大数据·人工智能·西游金蝉劫·蝎子精·蝎子精女妖王·金蝉子前传渡缘劫
进化矩阵1 小时前
别把指标当目的:当数字开始反噬你
大数据·人工智能·职场和发展·创业创新
听到微笑1 小时前
Elasticsearch 如何存储与检索海量向量
数据库·elasticsearch
海浪仙人掌1 小时前
速动比率怎么分析?速动比率分析有哪些注意事项?
大数据·数据库·人工智能
用户3610588626121 小时前
Flink高级之函数类深度剖析:生命周期、状态访问与定时器全解析
大数据·flink
可靠性精研2 小时前
可靠性精研已有标准:IEC-60601 系列
大数据
长谷深风1112 小时前
支付审批的智能风险控制设计
大数据·人工智能·ai·大模型·支付·aiagent·hitl
麦豆GEO2 小时前
本地商家GEO优化落地实操方案:让AI主动推荐你的店
大数据·人工智能
宸津-代码粉碎机2 小时前
Spring AI 高危CVE漏洞深度复盘|生产禁跑版本汇总+临时防御+修复方案
java·大数据·人工智能·python·spring
Q26433650233 小时前
【有源码】基于机器学习的电信网络诈骗话术语义识别与可视化分析系统 XGBoost算法+Hadoop+Spark
大数据·hadoop·算法·机器学习·spark·毕业设计·课程设计