es elasticsearch char_filter 特殊字符替换为空格 \u0020不生效情况

本文介绍如何通过增加char_filter来过滤特殊字符,优化文本的分词效果。包括配置文件的具体修改方法及如何使更改生效,适用于需要精确匹配和处理中文等复杂文本场景。

特殊字符会影响分词效果,需要特殊字符过滤,优化匹配,所以需要修改mapping增加 char_filter 过滤。

“analysis”: {
“filter”: {

    },
    "char_filter": {
      "my_char_filter": {
        "type": "mapping",
        "mappings": [
          "# \u003d\u003e  ",
          "\u0026 \u003d\u003e  ",
          "+ \u003d\u003e  ",
          "- \u003d\u003e  ",
          "_ \u003d\u003e  ",
          ". \u003d\u003e  ",
          "@ \u003d\u003e  "
        ]
      }
    },
    }

通过head 修改tpl 文件 需求对 空格\u0020 进行转义 增加\ ,使用
$ = > \\u0020
才可以生效( 已存在的索引文件 生效需要reindex 重新生成后才可以生效);

然后再 对应需要使用char_filter 的位置 使用
“ik_ik_smart”: {
“filter”: [
“ik_synonym”
],
“char_filter”: [
my_char_filter
],
“type”: “custom”,
“use_smart”: “true”,
“tokenizer”: “ik_smart”
},

重跑前 重跑后 可以使用analyze api 指定分词器和 内容进行测试
例如:将# 通过char_filter 替换为 空格。分词结果如下
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值