ik分词器

一、介绍

   // 测试分词器
   GET _analyze
   {
       "analyzer": "ik_max_word",
       "text": "北京欢迎你"
   }
   // 构建分词器映射
   PUT my_index1
   {
       "mappings": {
           "doc": {
               "properties": {
                   "coontent": {
                       "type": "text",
                       "analyzer": "ik_max_word"
                   }
               }
           }
       }
   }
   // 实例
   PUT my_index1/doc/1
   {
       "content": "今天是个好日子"
   }
   PUT my_index1/doc/2
   {
       "今天不想活了"
   }
   GET my_index1/doc/1
   {
       "query": {
           "match": {
               "content": "今天"
           }
       }
   }

二、分词器对比

   // 构建默认分词器映射
   PUT my_index2
   {
       "mappings": {
           "doc": {
               "properties": {
                   "coontent": {
                       "type": "text"
                   }
               }
           }
       }
   }
   """
   注意:默认分词器是按照字进行一个一个分;ik分词器是按照词进行一个一个分
   """

三、粗细颗粒对比

   // 构建新的分词器映射
   PUT my_index3/doc/_mapping
   {
       "doc": {
           "_all": {
               "analyzer": "ik_smart"
           },
           "properties": {
               "title": {
                   "type": "text"
               },
               "content": {
                   "type": "text"
               }
           }
       }
   }
   """
   注意:smart分词器就会更加粗,如查询"今天",会相应地将没有"今天"的词语对应的数据也查询出来
   """

四、短语和短语前缀查询

   // 短语查询
   GET my_index3/doc/_search
   {
       "query": {
           # 查询中文短语推荐
           "match_parse": {
               "content": "白话"
           }
       }
   }
   // 短语前缀查询
   GET my_index3/doc/_search
   {
       "query": {
           # 以"白话"开头进行查询
           "match_parse_prefix": {
               "content": "白话"
           }
       }
   }

你可能感兴趣的:(ik分词器)