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": "我的酒店"
}

elasticsearch中使用停用词过滤器_第1张图片

IK 中使用停用词

没有设置停用词时

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

elasticsearch中使用停用词过滤器_第2张图片

  1. 在plugins/ik/config 中创建my_stopword.dic
    在这个文件中添加停用词,换行存储
    elasticsearch中使用停用词过滤器_第3张图片
  2. 修改ik/config/IKAnalyzer.cfg.xml
    elasticsearch中使用停用词过滤器_第4张图片
  3. 重启es
  4. 重试
    elasticsearch中使用停用词过滤器_第5张图片

你可能感兴趣的:(elasticsearch,elasticsearch,大数据)