ES-分词器安装与使用详解

安装分词器

windows环境,分词器有2种安装方式,1.直接命令安装;2.压缩包安装

IK分词器

查看ik分词器文档,找到安装方式介绍

文档链接:

方式1

复制代码
elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.10.0

方式2

下载压缩包,然后解压放入到 es的plugins目录

找到es对应的版本,然后下载

验证是否安装成功

复制代码
elasticsearch-plugin list

测试分词器

需要先重启ES

java 复制代码
POST /_analyze   
{
  "analyzer": "ik_max_word",
  "text": "中华人民"   
}   

结果

java 复制代码
{
  "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" : 1,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "人民",
      "start_offset" : 2,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 3
    }
  ]
}

分词器的组成

分词器(Analyzer)是用于将文本拆分为词项(Token)的工具。分词器由以下三个部分组成:

  • 字符过滤器(Character Filters):对原始文本进行预处理(如去除 HTML 标签、替换字符等)。
  • 分词器(Tokenizer):将文本拆分为词项。
  • 词项过滤器(Token Filters):对分词后的词项进行处理(如小写转换、去除停用词等)

分词器种类

分词器 特点 适用场景 优点 缺点 示例
Standard Analyzer 默认分词器,基于 Unicode 文本分割算法,按空格和标点符号分词,转换为小写。 英文或其他基于空格分隔的语言 简单易用,无需额外配置。 不支持中文分词,对特殊字符敏感。 "Hello, world!"["hello", "world"]
english Analyzer 转换成小写,词干提取、停用词过滤 "Barking a games"->["bark","game"]
Simple Analyzer 按非字母字符分词,转换为小写。 简单的英文分词 轻量级,适合简单场景。 无法处理复杂文本,不支持中文。 "Hello, world!"["hello", "world"]
Whitespace Analyzer 按空格分词,不转换大小写。 需要保留大小写的场景 保留原始大小写,适合特定需求。 无法处理标点符号,不支持中文。 "Hello, world!"["Hello,", "world!"]
Keyword Analyzer 将整个文本作为一个词项,不进行分词。 需要精确匹配的场景(如 ID、标签) 保留完整文本,适合精确匹配。 不适合全文搜索。 "Hello, world!"["Hello, world!"]
Pattern Analyzer 基于正则表达式分词,默认按非字母字符分词,转换为小写。 需要自定义分词规则的场景 灵活,支持自定义正则表达式。 配置复杂,性能较低。 "Hello, world!"["hello", "world"]
Language Analyzer 针对特定语言(如英语、法语、德语)优化分词。 多语言支持 针对特定语言优化,分词效果较好。 需要指定语言,不支持中文。 "Hello, world!"["hello", "world"]
IK Analyzer 支持中文分词,提供 ik_smart(智能分词)和 ik_max_word(最大分词)两种模式。 中文文本处理 中文分词效果好,支持自定义词典。 需要额外安装插件,重启 Elasticsearch。 "你好世界"["你好", "世界"]ik_smart)或 ["你好", "世界", "你好世界"]ik_max_word
Jieba Analyzer 支持中文分词,提供 search(搜索模式)和 index(索引模式)两种模式。 中文文本处理 中文分词效果好,支持自定义词典。 需要额外安装插件,重启 Elasticsearch。 "你好世界"["你好", "世界"]search)或 ["你好", "世界", "你好世界"]index
Nori Analyzer 针对韩语优化的分词器。 韩语文本处理 韩语分词效果好,支持自定义词典。 需要额外安装插件,重启 Elasticsearch。 "안녕하세요"["안녕", "하세요"]
Kuromoji Analyzer 针对日语优化的分词器。 日语文本处理 日语分词效果好,支持自定义词典。 需要额外安装插件,重启 Elasticsearch。 "こんにちは"["こんにちは"]
Stempel Analyzer 针对波兰语优化的分词器。 波兰语文本处理 波兰语分词效果好,支持自定义词典。 需要额外安装插件,重启 Elasticsearch。 "Witaj świecie"["witaj", "świecie"]
相关推荐
Elastic 中国社区官方博客8 小时前
Elasticsearch 的结构化文档配置 - 递归分块实践
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·jenkins
神的孩子都在歌唱8 小时前
Elasticsearch 7.6 安装 Jieba 中文分词插件完整教程
elasticsearch·中文分词·jenkins
草明8 小时前
Elasticsearch 报错:index read-only / allow delete (api) 深度解析与解决方案
大数据·elasticsearch·jenkins
失散139 小时前
分布式专题——55 ElasticSearch性能调优最佳实践
java·分布式·elasticsearch·架构
Elasticsearch9 小时前
在 Elastic Observability 中使用 OpAmp 对 EDOT SDK 进行集中配置
elasticsearch
神的孩子都在歌唱11 小时前
es开源小工具 -- 分析器功能
大数据·elasticsearch·开源
BugShare13 小时前
嘿嘿,一个简单ElasticSearch小实现
java·大数据·spring boot·elasticsearch
weisian15115 小时前
Elasticsearch-4--倒排索引的原理?
大数据·elasticsearch·搜索引擎
songyuc1 天前
【Git】请帮忙解释一下“git reset”
git·elasticsearch
Elastic 中国社区官方博客1 天前
Observability:适用于 PHP 的 OpenTelemetry:EDOT PHP 加入 OpenTelemetry 项目
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·php