ik分词器

ik分词器出现的背景:
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,
默认的中文分词是将每个字看成一个词,比如"中国的花"会被分为"中","国","的","花",这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。


IK提供了两个分词算法
ik_smart 和 ik_max_word
其中 ik_smart 为最少切分,ik_max_word为最细粒度划分

我们分别来试一下 
(1)最小切分:在浏览器地址栏输入地址 
http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员 
输出的结果为:
  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,    
      "end_offset" : 1,
      "type" : "CN_CHAR",  
      "position" : 0 
    },
    {
      "token" : "是",
      "start_offset" : 1, 
      "end_offset" : 2,
      "type" : "CN_CHAR",  
      "position" : 1 
    },
    {
      "token" : "程序员",   
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2 
    }
  ]
}
(2)最细切分:在浏览器地址栏输入地址
http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员
输出的结果为:
{  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0 
    },
    {
      "token" : "是",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR", 
      "position" : 1 
    },
    {
      "token" : "程序员", 
     "start_offset" : 2, 
     "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2 
    },
    {
      "token" : "程序",
      "start_offset" : 2, 
     "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 3 
    },
    {
      "token" : "员",
      "start_offset" : 4, 
     "end_offset" : 5,
      "type" : "CN_CHAR",
      "position" : 4 
    }
  ]
}

ik分词器支持自定义词库

默认的分词并没有识别“小明”是一个词。如果我们想让系统识别“小明”是一个词,需要编辑自定义词库。
步骤:
(1)进入elasticsearch/plugins/ik/config目录
(2)新建一个my.dic文件,编辑内容:
小明
修改IKAnalyzer.cfg.xml(在ik/config目录下)

 <properties>
    <comment>IK Analyzer 扩展配置</comment>
    <!‐‐用户可以在这里配置自己的扩展字典 ‐‐>
    <entry key="ext_dict">my.dic</entry>
     <!‐‐用户可以在这里配置自己的扩展停止词字典‐‐>
    <entry key="ext_stopwords"></entry>
</properties>

重新启动elasticsearch即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容