ES笔记:IK分词器
ES中文档按照分词进行检索,对于中文,ES默认按照单个字进行分词,非常低效,可以使用专门的中文分词器,如IK分词器。
下载: https://github.com/medcl/elasticsearch-analysis-ik/releases
安装: 在ES的plugins目录下新建一个目录,将下载的IK分词压缩包解压到此目录即可,然后重启ES该分词器便会生效。
IK分词器提供了两种分词算法:ik_smart(最少切分)和ik_max_word(细粒度切分)。这两种分词算法都会根据默认的“词典”进行切分,所有的“词典”配置文件都在config目录下的dic文件中。
如果想要添加自定义的词典,可以在config目录下新建自己的dic文件,如 my.dic ,然后将该文件配置在 IKAnalyzer.cfg.xml 中的ext_dict节点,如 <entry key="ext_dict">my.dic</entry> ,然后重启ES即可。
ik_smart示例:切分结果只是切分了一次
GET _analyze
{
  "analyzer": "ik_smart",  # 指定分析器,默认的分析器是内置的standard分析器
  "text": "开发工具"
}
分词结果:
{
  "tokens" : [
    {
      "token" : "开发工具",
      "start_offset" : 0,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 0
    }
  ]
}
ik_max_word示例:切分出更多结果
GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "开发工具"
}
分词结果
{
  "tokens" : [
    {
      "token" : "开发工具",
      "start_offset" : 0,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "开发",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "工具",
      "start_offset" : 2,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号