自定义分词器-ik analyzer+html_strip

由于工作中的业务需要,需要定义这么一个分词器,用于对一个名为remark的字段进行分词。

其中,remark字段适用于存储富文本类型的信息, 比如 <p>这是一个<b>接口</b>啊</p>

如果直接使用ik_max_word对字段进行分词,那么得到的分词结果如下图所示:

 如上图,可以看到,富文本中的html标签<p>  </p> 等,都被解析成一个token了,显然这不是我们想要的结果。

下面我们自定义一个名为my_custom_html_ik_analyzer,它基于ik_max_word创建,在ik_max_word的基础上,添加了html_strip的character filter,添加这个character filter,主要用于在分词前,先过滤掉字段中的html标签

测试:

PUT susu_test1
{
  "settings": {
      "analysis": {
        "analyzer": {
          "my_custom_html_ik_analyzer": {
            "char_filter": [
              "html_strip"
            ],
            "tokenizer": "ik_max_word"
          }
        }
      }
  }
}

如下图:

接着测试我们自定义个分词器,如下图

可以看到,诸如<p>  </p>  <b>  </b>等html标签,都已经被过滤掉了

原文地址:https://www.cnblogs.com/suhaha/p/15211108.html