elasticsearch中使用停用词过滤器

停用词也叫停止词,是指文本在被分词之后的词语中包含的没有搜索意义的词。什么叫做无搜索意义呢。假设文本为"这里的世界丰富多彩",那么分词结果中的"这里"和"的"对于搜索其实是没有意义的。因为这类词语出现的频率实在是太高了,在构建索引的时候,常常忽略这样的词,可以提高搜索效率。
中文停用词可以在https://www.ranks.nl/stopwords/chinese-stopwords中找到
英文停用词可以在https://www.ranks.nl/stopwords中找到

以下分别介绍如何在es默认的分析器中使用停用词,以及ik分词中使用停用词

es 自带分析器设置停用词

PUT hotel
{
  "settings": {
    "analysis": {
      "filter": {#定义分词过滤器
        "my_stop":
        {
          "type":"stop", #指定分词过滤器类型为停用词
          "stopwords":[ #指定停用词集合
            "我",
            "的"]
        }
      }, 
      "analyzer": {
        "my_analyzer":{#自定义分析器
          "tokenizer":"standard",#分析器使用的分词器类型
          "filter":["my_stop"]#指定分词过滤器
        }
      }
    }
  }
  , "mappings": {
    "properties": {
      "title":
      {
        "type":"text",
        "analyzer": "my_analyzer"
      }
    }
  }
}

验证

POST hotel/_analyze
{
  "field": "title",
  "text": "我的酒店"
}

在这里插入图片描述

IK 中使用停用词

没有设置停用词时

POST _analyze
{
  "analyzer": "ik_max_word",
  "text":"一个清新的酒店"
}

在这里插入图片描述

  1. 在plugins/ik/config 中创建my_stopword.dic
    在这个文件中添加停用词,换行存储
    在这里插入图片描述
  2. 修改ik/config/IKAnalyzer.cfg.xml
    在这里插入图片描述
  3. 重启es
  4. 重试
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值