前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch分词

Elasticsearch分词

作者头像
XiaoA
发布2024-07-22 13:53:00
130
发布2024-07-22 13:53:00
举报
文章被收录于专栏:偷得浮生半日闲

Elasticsearch搜索中比较重要的就是分词了,通过分词将内容拆分成不同的关键词,然后通过关键词的匹配度来打分排序选择结果,Elasticsearch默认是支持分词的,但是对中文的分词就可想而知了,所以中文分词需要自行安装差件,推荐IK分词插件。

内置分词

分词器

名称

说明

Standard Analyzer

标准分词器

适用于英语等

Simple Analyzer

简单分词器

于非字母字符进行分词,单词会被转为小写字母

Whitespace Analyzer

空格分词器

按照空格进行切分

Stop Analyzer

简单分词器+停用词

类似于简单分词器,但是增加了停用词的功能

Keyword Analyzer

关键词分词器

输入文本等于输出文本,不会切分

Pattern Analyzer

正则分词器

利用正则表达式对文本进行切分,支持停用词

Language Analyzer

语言分词器

针对特定语言的分词器

Fingerprint Analyzer

指纹分词器

指纹分析仪分词器,通过创建标记进行重复检测

中文分词

安装
  1. 下载
  2. 解压安装到你的es目录/plugins文件夹下
  3. 改名为ik
  4. 扩展词典和自定义词典需修改配置文件ik/config/IKAnalyzer.cfg.xml
  5. 重启elasticsearcch服务
使用

IK提供了两个分词算法:

ik_smart为最少切分

代码语言:javascript
复制
GET _analyze 
{ 
"analyzer":"ik_smart", 
"text":"中国农业银行" 
}

结果为

代码语言:javascript
复制
{
"tokens" : [
  {
    "token" : "中国农业银行",
    "start_offset" : 0,
    "end_offset" : 6,
    "type" : "CN_WORD",
    "position" : 0
  }
]
}

ik_max_word为最细粒度划分

代码语言:javascript
复制
GET _analyze 
{ 
"analyzer":"ik_max_word", 
"text":"农业银行" 
}

结果为

代码语言:javascript
复制
{
"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
  }
]
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内置分词
  • 中文分词
    • 安装
      • 使用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档