中文分词器-ik分词(安装+简介)附示例

简介

支持自定义词典

IK 分词器允许用户自定义词典,可以添加新词、调整词频等,以便更好地适应特定的领域或需求。自定义词典可以提高分词的准确性和召回率

拼音分词

IK 分词器还提供了拼音分词功能,可以将中文文本转换为拼音,方便进行拼音搜索和拼音排序

分词器安装 ik

下载地址:Releases · medcl/elasticsearch-analysis-ik · GitHub(与es版本一致)

解压到es目录的plugins下

这里需要注意es版本与ik的版本一致,如果发现官网没有对应的ik版本,需要修改下ik分词插件下 plugin-descriptor.properties文件

#es版本号
version=x.x.x
elasticsearch.version=x.x.x
细粒度分词模式(ik_smart)

这是默认的分词模式,它会尽可能地将句子切分为最小的词语单元。它不仅可以识别普通词汇,还可以识别一些常见的专有名词、地名、人名等。

示例:

POST _analyze
{
  "analyzer": "ik_smart",
  "text": "小孩儿不能吃糖"
}

运行结果:

{
  "tokens": [
    {
      "token": "小孩儿",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "不能",
      "start_offset": 3,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "吃糖",
      "start_offset": 5,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 2
    }
  ]
}

智能分词模式(ik_max_word):

这种模式会在细粒度分词的基础上,对长词进行进一步的切分。它可以识别更多的词语,但也会增加一些不必要的词语。

这两种模式可以根据具体的需求选择使用。如果需要更细粒度的分词结果,可以选择细粒度分词模式;如果需要更全面的分词结果,可以选择智能分词模式

示例:

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "小孩儿不能吃糖"
}
{
  "tokens": [
    {
      "token": "小孩儿",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "小孩",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "孩儿",
      "start_offset": 1,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 2
    },
    {
      "token": "不能",
      "start_offset": 3,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "能吃",
      "start_offset": 4,
      "end_offset": 6,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "吃糖",
      "start_offset": 5,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 5
    }
  ]
}

你可能感兴趣的:(Elasticsearch,elasticsearch)