IK分词器

Posted 宝哥大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IK分词器相关的知识,希望对你有一定的参考价值。

一、安装

1.1、ik分词器的安装

下载ik分词器

在es的plugins目录解压,记得创建一个目录

二、使用效果

2.1、在kibana中查询

2.1.1、没有使用分词器

2.1.2、使用ik分词器

IK分词器有两种分词模式:ik_max_word和ik_smart模式。

1、ik_max_word

会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

2、ik_smart
会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

2.1.2.1、ik_max_word(细粒度分词)

2.1.2.2、ik_smart(粗粒度分词)

三、自定义词库

对于部分专业词语,我们不想进行分词,所以ik分词器提供自定义词库
修改plugins/ik-analyzer/config/IKAnalyzer.cfg.xml,可以使用本地自定义词库,也可以使用远程分词库(建议使用远程,这样不用每次重启es集群

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 -->
        <entry key="ext_dict">mydic.dic</entry>
         <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords"></entry>
        <!--用户可以在这里配置远程扩展字典 -->
        <!-- <entry key="remote_ext_dict">words_location</entry> -->
        <!--用户可以在这里配置远程扩展停止词字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

mydic.dic

上海虹桥站

四、同义词

4.1、添加同义词库

vi analysis/synonym.txt

国贸,国贸,国毛,国冒,国貌,国矛,国猫,国帽,国茅,国茂,国髦,国卯,国铆,国锚,国袤,国牦,国瑁,国耄,国蟊,国蝥 => 国贸
程度,成都,诚笃,成度,成读,成独,成都,成毒,程度,成督,成肚,成赌,成渡,成杜,成堵,成睹,成嘟,成妒,成镀,成渎 => 成都

重启es集群

4.2、创建索引,设置settings

PUT /book4
{
  "mappings" : {
      "properties" : {
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          },
          "analyzer" : "ik_max_word",
          "search_analyzer" : "ik_smart"
        }
      }
    },
   "settings" : {
      "index" : {
        "analysis" : {
          "filter" : {
            "my_synonym_filter" : {
              "type" : "synonym",
              "synonyms_path" : "analysis/synonym.txt"
            }
          },
          "analyzer" : {
            "ik_synonym" : {
              "filter" : [
                "my_synonym_filter"
              ],
              "type" : "custom",
              "tokenizer" : "ik_max_word"
            }
          }
        }
      }
    }
}

4.3、测试

以上是关于IK分词器的主要内容,如果未能解决你的问题,请参考以下文章

分词器以及ik中文分词器

ik分词器 能不能自己增加关键字 怎么操作

ELK专栏之IK分词器和Java api操作索引--05

IK(中文)分词器

Elasticsearch 分布式搜索引擎 -- 安装IK分词器ik分词器-拓展词库 / 停用词库

java 中文分词为啥用 ik