elasticsearch 处理中英文混合文档

我们在学习es过程中,难免会遇到一些们在学习es过程中,难免会遇到一些中国英文混合文档

这时我们如果使用ik ,虽然可以把英文分词,但是处理不了停用词(and ,is这种的),还有无法提取主干信息

比如 无法把students 提取为student 等

正常的是这样的:

解决,可以通过自定义分析器(analyzer)

分析器(无论是内置的还是自定义的)只是一个包,其中包含三个较低级别的构建块:tokenizer,filter和character filter

可以理解为这样:

 analyzer : {
                tokenizer(1个)

                filter(0-到多个)

                characterfilter(0-多个)
            }

下边是我的分析器

PUT /myanalyaz



{
  "settings": {
    "analysis": {
      "filter": {
        "german_stop": {
          "type":       "stop",
          "stopwords_path":"analysis/stop.txt"
        },"german_stemmer": {
          "type":       "stemmer",
          "language":   "light_english"
        }
      },
      "analyzer" : {
          "my_analyzer" : {
                "tokenizer" : "ik_smart",
                "filter" : [
                    "lowercase",
                    "german_stop",
                    "german_stemmer"
                    ]
                }
            }
    }
  }
}

停止词文件内容:(一定要放到es 的config下)

前边两个标识,所有的英文和德文停止词,后边的自定义

测试

可以发现中文分词成功,students 也被提取主干了,停止词and 也没有存储

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值