Elasticsearch 中的停用词和自定义词库

  • 今天产品和我提了一个问题, 为什么在我们的产品里搜索be搜不到想要的数据
  • 我们的视频里的确有类似的,比如i want to be xxx

    停用词

    我们用的是ik分词, 然后去issues查找相关信息, 才了解到停用词.
    关于停用词的解释

所以我要做的只要把停用词删除掉即可

  • 进入Elasticsearch的根目录下(以你安装的为准, 我使用的是Docker)
  • cd /usr/share/elasticsearch
  • 进入ik的配置(在esconfig目录下寻找, 旧版本可能在plugins目录里)
  • cd config/analysis-ik
  • 查看英文停用词文件stopword.dic

  • 删除我们想要查找的停用词be
  • 重启Elasticsearch
  • 然后重新对文档索引, 之后便可以通过之前的停用词be查找到文档了

自定义词库

  • 看一下当前的分词效果

  • 查看ik下的配置文件IKAnalyzer.cfg.xml

  • 我们可以在ext_dict扩展自定义词库, 多个文件使用;隔开

  • 新建自定义词库文件

  • 重启Elasticsearch
  • 再次查看分词效果

  • 至此已经可以看到有我们自定义的词条q宠
点赞