温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

elasticsearch如何配置分词

发布时间:2026-10-29 08:04:24 来源:亿速云 阅读:94 作者:小樊 栏目:软件技术

在 Elasticsearch 中,“配置分词”通常涉及 分词器(Analyzer)、分词器组件(Tokenizer + Token Filter + Char Filter) 的配置,以及在 索引(Index)或字段(Mapping)级别 的使用。下面按常见场景系统说明。


一、Elasticsearch 分词核心概念

一个 Analyzer(分词器) 由三部分组成:

  1. Character Filters(字符过滤器)
    对原始文本做预处理(如去除 HTML 标签)
  2. Tokenizer(分词器)
    将文本切分成词元(token)
  3. Token Filters(词元过滤器)
    对 token 做处理(小写、去停用词、同义词等)

执行顺序:

原始文本 → Char Filters → Tokenizer → Token Filters

二、使用内置分词器(最简单)

Elasticsearch 自带很多分词器,例如:

  • standard(默认)
  • simple
  • whitespace
  • keyword(不分词)
  • ik_max_word / ik_smart(需安装 IK 插件,中文常用)

示例:字段使用内置分词器

PUT /my_index
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "standard"
      }
    }
  }
}

三、自定义 Analyzer(推荐方式)

1️⃣ 在创建索引时配置

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "type": "custom",
          "char_filter": ["html_strip"],
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "stop"
          ]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "my_analyzer"
      }
    }
  }
}

四、中文分词(非常重要)

Elasticsearch 默认对中文是 按字切分,不适合搜索。

常用中文分词插件

  • IK Analyzer(最常用)
    • ik_max_word:细粒度
    • ik_smart:粗粒度
  • jieba
  • hanlp
  • smartcn(官方,效果一般)

IK 分词器示例

PUT /cn_index
{
  "mappings": {
    "properties": {
      "text": {
        "type": "text",
        "analyzer": "ik_max_word",
        "search_analyzer": "ik_smart"
      }
    }
  }
}

✅ 建议:

  • 索引时用 ik_max_word
  • 搜索时用 ik_smart

五、测试分词效果

POST /my_index/_analyze
{
  "analyzer": "my_analyzer",
  "text": "Elasticsearch 是一个搜索引擎"
}

或测试字段:

POST /my_index/_analyze
{
  "field": "content",
  "text": "测试中文分词效果"
}

六、常见配置示例

1️⃣ 拼音分词(搜索拼音)

需安装 pinyin 插件:

"filter": {
  "pinyin_filter": {
    "type": "pinyin"
  }
}

2️⃣ 同义词配置

"filter": {
  "my_synonym": {
    "type": "synonym",
    "synonyms": [
      "电脑,计算机,computer"
    ]
  }
}

七、常见坑总结

✅ 分词在 写入时 和 查询时 都可不同
✅ 修改 analyzer 必须重建索引
✅ keyword 类型不分词
✅ 中文一定要用中文分词器


如果你能告诉我:

  • 使用的 ES 版本
  • 是否中文
  • 具体业务(搜索 / 日志 / 电商)

我可以给你 直接可用的完整配置示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手