ElasticSearch使用ik中文分词器集成html_strip网页标签过滤器

绝招就是使用自定义分析器

可以参考官方文档

    https://www.elastic.co/guide/en/elasticsearch/reference/5.6/analysis-custom-analyzer.html

tokenizer

A built-in or customised tokenizer. (Required) 这个参数是必须的,分词令牌

char_filter

An optional array of built-in or customised character filters. 这个是过滤器,数组,可以添加多个


配置自定义的配置:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "名字随便取": {
          "tokenizer": "ik_smart或者ik_max_word",
          "char_filter": ["html_strip"]
        }
      }
    }
  }
}


配置mapping的时候引用

{
  "properties": {
   
    "article": {
      "type": "string",
      "analyzer": "上面你配置的自定义分词器名字",
      "search_analyzer": "ik_smart"
      }
  }
}
就是这么简单




### ElasticsearchIK 分词器处理特殊符号的方法 在Elasticsearch中,IK分词器能够有效地解析中文文本并支持多种字符集的识别。对于特殊符号的支持,IK分词器默认情况下会将这些符号视为独立单元进行分割[^3]。 为了增强对特定类型字符(如希腊字母、拉丁字符及其扩展版本)的支持,在`CharacterUtil.java`文件内的`identifyCharType`函数中加入了额外逻辑判断语句。这段代码确保了当遇到上述提到的Unicode区块时,程序能正确地将其作为汉字对待,从而实现了更灵活多样的分词效果。 如果希望调整或优化IK分词器针对某些特殊符号的行为,则可以通过修改配置文件或者编写自定义插件的方式来达成目标。例如: - **通过设置参数控制**:可以在创建索引时指定分析链中的各个组件如何工作,包括但不限于是否忽略大小写转换、去除HTML标签等功能。 - **开发自定义插件**:对于更加复杂的需求场景,比如想要改变某个具体符号被切分为多个token的方式,就需要深入到源码层面去定制化实现所需功能。 ```json { "settings": { "analysis": { "analyzer": { "my_custom_analyzer": { "type": "custom", "tokenizer": "ik_max_word", "char_filter": [ "html_strip" ], "filter": [ "lowercase" ] } }, "char_filter": { "punctuation_to_space": { "type": "mapping", "mappings": [".=> ", "!=> ", "?=> "] // 将标点替换为空格或其他任何期望的结果 } } } } } ``` 此JSON片段展示了怎样利用内置映射字符过滤器(`mapping char filter`)来自定义处理一些常见的标点符号,使其按照预设规则转化为其他形式后再参与后续的分词过程[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值