特殊字符会影响分词效果,需要特殊字符过滤,优化匹配,所以需要修改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 替换为 空格。分词结果如下


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

被折叠的 条评论
为什么被折叠?



