Elasticsearch自定义分词器:搜索与插入场景下的应用

在处理中文等复杂语言的搜索时,Elasticsearch的分词器起着至关重要的作用。Elasticsearch允许我们自定义分词器,以满足特定的索引和搜索需求。有时,我们在插入数据时使用一种分词策略,而在搜索时使用另一种,以优化性能和搜索结果的相关性。本文将介绍如何在Elasticsearch中创建自定义分词器,并在插入和搜索时使用不同的分词器。

自定义分词器的基本概念

在Elasticsearch中,分词器(Analyzer)由以下三个主要部分组成:

  1. Character Filters(字符过滤器):在Tokenizer之前对文本进行处理。
  2. Tokenizer(分词器):将文本切分成词条。
  3. Token Filters(词条过滤器):对Tokenizer输出的词条进行进一步处理。

环境准备

确保您已经安装了Elasticsearch,并且对Elasticsearch的基本操作和分词器有一定的了解。

创建自定义分词器

我们将创建一个自定义分词器my_analyzer,它在索引时使用ik_max_word tokenizer和pinyin filter,而在搜索时使用ik_smart tokenizer。

定义索引和分词器

json 复制代码
PUT /test
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "ik_max_word",
          "filter": ["pinyin"]
        }
      },
      "filter": {
        "pinyin": {
          "type": "pinyin",
          "keep_first_letter": true
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "my_analyzer",
        "search_analyzer": "ik_smart"
      }
    }
  }
}

插入数据示例

使用自定义分词器my_analyzer插入数据:

json 复制代码
POST /test/_doc/1
{
  "id": 1,
  "name": "狮子"
}

POST /test/_doc/2
{
  "id": 2,
  "name": "虱子"
}

搜索数据示例

使用ik_smart分词器搜索包含"掉入狮子笼咋办"的数据:

json 复制代码
GET /test/_search
{
  "query": {
    "match": {
      "name": "掉入狮子笼咋办"
    }
  }
}

结语

通过自定义分词器,我们可以更灵活地控制Elasticsearch的索引和搜索行为。在本例中,我们创建了一个自定义分词器my_analyzer,它在索引时使用ik_max_word tokenizer和pinyin filter进行分词,并在搜索时使用ik_smart tokenizer。这种方法可以提高搜索的灵活性和准确性,尤其是在处理中文等需要复杂分词逻辑的语言时。

希望本文能帮助您了解如何在Elasticsearch中创建和使用自定义分词器,以及如何在不同的搜索和插入场景下应用不同的分词策略。

相关推荐
yurenshi166828 分钟前
自媒体多账号管理工具 4 款实测:聚媒通 / 融媒宝 / 新榜小豆芽 / 矩阵通横向对比,快速选型
大数据·矩阵·媒体
nVisual2 小时前
机柜PDU安装位置与空间建模方案
大数据·网络·数据库·信息可视化·数据中心基础设施管理
@insist1232 小时前
系统规划与管理师-流程评价与持续改进核心知识-终章
大数据·人工智能·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
TechEdu2026063 小时前
[计算机科学]大数据硬件架构与软件架构概览
大数据·计算机科学
爱莉希雅&&&3 小时前
elasticsearch+kibana+logstash+filebeat链路部署流程
大数据·elasticsearch·搜索引擎·kibana·logstash·filebeat
FII工业富联科技服务3 小时前
从灯塔工厂到AI Factory新模式:AI正在重构制造业的四大核心能力
大数据·运维·人工智能·重构·ar·制造
小五传输3 小时前
自主可控建设指南:Serv-u替代方案,实现平滑迁移业务不中断
大数据·运维·安全
Spey_Events3 小时前
【核心议题发布】聚焦深度维修与 AI 智慧革新!2026中国民用航空维修智造展——议题重磅发布!
大数据·人工智能
czzxxxxxx3 小时前
创客匠人AI智能体:知识付费从“重人力”走向“自动化”的拐点
大数据·人工智能
大大大大晴天3 小时前
Hudi技术内幕:Clustering原理与实践
大数据