ElasticSearch 分词器

查看指定分词器的分词结果

GET _analyze
{
  "text": "我爱北京",
  "analyzer": "standard"  // 默认分词器
}

自定义分词器

创建索引自定义分词器
PUT custom_analysis
{
  "settings": {
    "analysis": {
      "char_filter": {
      //  自定义字符映射
        "my_char_filter":{
          "type":"mapping",
          "mappings":[
            "& => and",
            "| => or"
            ]
        },
        // 自定义html 标签保留
        "html_strip_filter":{
          "type":"html_strip",
          "escaped_tags":["a"]
        }
      },
      "filter": {
     // 自定义停用词
        "my_stopword":{
          "type":"stop",
          "stopwords":[
              "is",
              "in",
              "for"
            ]
        }
      },
      "tokenizer": {
      // 自定义文本分词器
        "my_tokenizer":{
          "type":"pattern",
          "pattern":"[ ,.?!]"
        }
      },
      "analyzer": {
        "my_analyzer":{
          "type":"custom",
          "char_filter":["my_char_filter","html_strip_filter"],
          "filter":["my_stopword"],
          "tokenizer":"my_tokenizer"
        }
      }
    }
  }
}

分词器测试
GET custom_analysis/_analyze
{
  "analyzer": "my_analyzer",
  "text": "what is as <a> the char filter & stopword |</a> happare in,add?asa,"
}

中文分词器
下载地址:https://github.com/infinilabs/analysis-ik/releases/tag/v7.15.2
安装:将压缩包 解压到D:\fenbushi\elasticsearch-7.15.2-windows-x86_64\elasticsearch-7.15.2\plugins下面并改为ik后重启就好了。
IK文件描述:
IKAnalyzer.cfg.xml :IK分词器配置文件
主词库:main.dic
英文停用词:stopword.dic,不会建立倒排索引
特殊词库:
quantifier.dic 计量单位
suffix.dic 后缀名
surname.dic 百家姓
preposition.dic 语气词
添加自定义分词:将自己定义的分词文件添加到IKAnalyzer.cfg.xml文件中 即可

热更新
ik访问远程文件
可以通过修改IKAnalyzer.cfg.xml中的words_location可以对分词器 进行热更新,words_location是一个远程api地址返回分词的文件。

	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->

ik访问数据库
下载源码(sorcecode.zip)地址:https://github.com/infinilabs/analysis-ik/releases/tag/v7.15.2
下载完后在Dictionary.java文件中的loadMainDict方法中添加一个从数据库获取分词的方法就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值