(七) ElasticSearch 分词器

news/2023/12/1 10:36:30

1.分词器

分词器是 Elasticsearch 用于将文本拆分为单词(词项)的组件,以便于搜索和索引。以下是一些关于 Elasticsearch 分词器的常见问题和相关操作的介绍:

1)什么是分词器?

分词器是 Elasticsearch 中的一个组件,用于将文本转换为词项,以便于搜索和索引。它负责将输入的文本进行拆分、标准化和处理,生成最终的词项列表。

2)常用分词器

Elasticsearch 提供了多个内置的分词器,每个分词器适用于不同的场景和需求。以下是一些常用的内置分词器:

  • standard 分词器:
    standard 分词器是 Elasticsearch 默认的分词器,适用于大多数情况。它会根据空格和标点符号将文本拆分为词项,并进行小写转换和标点符号过滤。
  • simple 分词器:
    simple 分词器会根据非字母字符将文本拆分为词项,并将词项转换为小写。它不会进行标点符号和停用词的过滤。
  • whitespace 分词器:
    whitespace 分词器会根据空格字符将文本拆分为词项。它不会进行小写转换、标点符号过滤和停用词过滤。
  • keyword 分词器:
    keyword 分词器不会对文本进行拆分,将整个文本作为一个词项。它通常用于不需要进行分词的字段,如关键字字段或精确匹配字段。
  • pattern 分词器:
    pattern 分词器根据正则表达式模式将文本拆分为词项。你可以指定自定义的正则表达式模式来满足特定的分词需求。
  • stop 分词器:
    stop 分析器 和 simple 分析器很像,唯⼀不同的是,stop 分析器增加了对删除停⽌词的⽀
    持,默认使⽤了english停⽌词,stopwords 预定义的停⽌词列表,⽐如 (the,a,an,this,of,at)等等。
  • language 分词器:
    Elasticsearch 还提供了多个针对特定语言的分词器,如 english、chinese、french 等。这些分词器会根据特定的语言规则和特征进行分词处理,以提供更准确的分词效果。

3)测试分词器

这里是一个简单的示例,演示如何使用内置的 standard 分词器测试文本的分词效果:

POST _analyze
{"analyzer": "standard","text": "Hello world, this is Elasticsearch"
}

以上操作会将文本 “Hello world, this is Elasticsearch” 使用 standard 分词器进行分析,并返回分词结果。

4)选择分词器

创建索引时选择分词器方法
在创建索引时,可以通过指定字段的映射来指定分词器。下面是创建索引并指定字段分词器的示例:

PUT /my_index
{"settings": {"analysis": {"analyzer": {"my_analyzer": {"type": "whitespace",}},}},"mappings": {"properties": {"name": {"type": "text","analyzer": "my_analyzer"}}}
}

更换索引字段分词器方法:
要更换字段的分词器,需要重新定义字段的映射,并指定新的分词器。下面是更换字段分词器的一般步骤:
1.关闭索引:

POST /索引名/_close

2.更新字段映射:

PUT /索引名/_mapping
{"properties": {"字段名": {"type": "text","analyzer": "新的分词器"}}
}

3.打开索引:

POST /索引名/_open

5)中文分词器

使用中文分词器的主要目的是对中文文本进行正确、准确的分词处理。中文与英文等拉丁语系的语言不同,它没有明确的词语分隔符(如空格),因此直接对中文进行全文匹配会导致词语的混淆和错误。

当涉及到中文分词器时,两个常用的选择是 Smart Chinese Analyzer(smartcn)和 IK Analyzer。

Smart Chinese Analyzer(smartcn):
Smart Chinese Analyzer 是 Elasticsearch 内置的中文分词器,它使用机器学习算法进行分词,并且适用于简体中文和繁体中文。
Smart Chinese Analyzer 的优点是易于使用,无需额外配置即可使用。它具有较高的分词准确性和召回率,适用于大多数中文文本的索引和搜索。

安装:

sh elasticsearch-plugin install analysis-smartcn

安装后重新启动ES

在创建索引时,可以将字段的分词器指定为 “smartcn”。

PUT /索引名
{"settings": {"analysis": {"analyzer": {"my_analyzer": {"type": "smartcn"}}}},"mappings": {"properties": {"字段名": {"type": "text","analyzer": "my_analyzer"}}}
}

卸载:

 sh elasticsearch-plugin remove analysis-smartcn

IK Analyzer:

IK Analyzer 是一个第三方的中文分词器,它基于开源项目 IK Analysis 进行开发。IK Analyzer 提供了细粒度的中文分词能力,支持词库扩展和自定义词典。
IK Analyzer 的优点是可以根据具体需求进行配置和定制,支持停用词过滤、同义词扩展等功能。它适用于对中文文本的更精确分词和分析需求。
在创建索引时,可以将字段的分词器指定为 “ik_max_word” 或 “ik_smart”。“ik_max_word” 会尽可能多地进行分词,而 “ik_smart” 则会更加智能地进行分词。

下载
https://github.com/medcl/elasticsearch-analysis-ik/releases

安装 解压安装到plugins⽬录

安装后重新启动

示例:

PUT /索引名
{"settings": {"analysis": {"analyzer": {"my_analyzer": {"type": "custom","tokenizer": "ik_max_word"}}}},"mappings": {"properties": {"字段名": {"type": "text","analyzer": "my_analyzer"}}}
}

http://www.ppmy.cn/news/466022.html

相关文章

宾军志:数据管理能力成熟度模型建设历程

4月27日在2023数据治理新实践峰会上,中国电子信息行业联合会数据资产管理专委会秘书长宾军志先生为大家分享了《数据管理能力成熟度模型建设历程》主题演讲。 以下为宾军志先生的演讲实录,为了方便阅读,小编做了一些字句修改和文本优化。大家…

端午公司发了三颗荔枝

刚看到一个热搜话题,很有意思。 端午公司发了3颗荔枝 这个热搜真是出乎我的意料,我一开始以为网友们会说怎么只发了三颗荔枝,结果大多人说自己所在的公司发了个空气的,有3颗荔枝已经很不错了。 确实,虽然端午节这家公司…

说说抖音和小红书的交互和界面设计,您更喜欢哪一个?

2021-6-25 蓝蓝 随笔的一些文章 作者:蓝蓝设计的蓝蓝 HI,亲爱的宝宝们(视频App上常用的呢称 ),大家好,小红书和抖音是最近非常火爆的两个视频类的APP,可以说是视频APP中的代表了&a…

对于架构的深入探讨

本文基于[凤凰架构](https://icyfenix.cn/)网站的基础上复制缩减而成。服务架构的的演进史 原始分布式时代 在 20 世纪 70 年代末期到 80 年代初,计算机科学刚经历了从以大型机为主向以微型机为主的蜕变,计算机逐渐从一种存在于研究机构、实验室当中的科…

【287期】5 款免费又好用的 Docker 管理神器!酷炫到没朋友!

点击上方“Java精选”,选择“设为星标” 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每一天进步一点点,是成功的开始... 你是否还在大量控制台窗口中监控容器,还…

常用测试用例

文章目录 1:矿泉水瓶2:一支笔3:水壶4:朋友圈点赞功能5:淘宝搜索框6:电梯7:购物车8:自动售货机9:在58app里有一个“微聊”的功能,支持用户之间的在线聊天。例如在房产业务…

详述RFID服装智能管理方案

1.1 方案背景 服装行业竞争越来越激烈,服装行业企业要在市场竞争中立于不败之地,必须要不断提高生产效率,缩短资金的周转时间,此时,信息化智能化的先进管理手段和管理模式变得非常重要。目前,大部分服装行业信息化建设比较落后,导致整个信息反馈不畅。在出现问题的时候…

【人机交互】课程知识点梳理及习题

目录 1 人机交互绪论 2 感知和认知基础 3 人机交互设备 4 交互技术 5 界面设计 6 人机交互界面表示模型与实现 7 Web界面设计 1 人机交互绪论 1.人机交互:关于设计、评价和实现供人们使用的交互式计算机系统,并围绕相关的主要现象进行研究的学科。…

购买嵌入式硬件,焊接设备避坑指南/自用工具推荐

课代表版本 前言使用好闲鱼很可以如虎添翼不一定要买贵的,但一定要买对的 小白版电烙铁&焊台电烙铁:焊台:刀头焊台型号 防烫垫万用表焊锡丝吸锡带螺丝刀工具钳子/镊子数据线 进阶强化版可调电源不带稳流的变压电源:带稳压稳流…

谷粒商城--分布式基础篇1

谷粒商城-分布式基础篇1(项目简介、分布式基础、环境搭建、Spring Cloud Alibaba) 目录 谷粒商城-分布式基础篇1(项目简介、分布式基础、环境搭建、Spring Cloud Alibaba)1.项目简介1.1项目背景1.2电商模式1.2.1 B2B模式1.2.2 B2C模式1.2.3 C2B模式1.2.4 C2C模式1.2.5 O2O模式 …

一文弄懂Linux虚拟机网络配置

文章目录 计算机网路基础网络连接模式Bridged(桥接模式)NAT(地址转换模式)Host-Only(仅主机模式) Linux常用网络相关命令ifconfig:配置网络接口ping:测试主机之间网络连通性修改ip地…

FISCO BCOS(十二)——— 区块链关键概念

1、什么是区块链 区块链(blockchain)是在比特币之后提出的一个概念,在中本聪关于比特币的论文中没有直接引入blockchain的概念,而是以chain of block来描述一种数据结构,比特币采用区块链技术,但是区块链并不等同于比特币。 Chain of block是指由多个区块通过哈希(has…

基于SpringBoot+Vue手表电商销售系统的设计与实现

目 录 引言 1 第1章 概述 2 1.1 课题的研究背景 2 1.2 课题研究目的和意义 3 1.3 国内外的研究现状和发展趋势 3 1.4 开发使用的相关技术介绍 4 1.4.1 开发工具的介绍 1.4.2 SpringBoot 1.4.3 Lombok 1.4.4 Mybaties 1.4.5 Vue 第2章 系统的需求分析 5 2.1 需求分析 6 2.2 可行…

uni-app课程心得

目录 1.uni-app环境搭建 1.下载HBuilderX 2.通过HBuilderX可视化界面创建第一个uni-app应用 3.下载微信小程序 2.全局文件配置 1.pages.json文件 2.manifest.json文件 3.uni-app实际运用中的组件 1.基础组件列表 2.视图组件 2.1swiper 2.2scroll-view 3.表单组件 3…

springboot万花筒毕业设计源码345600

摘要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规…

(附源码)springboot万花筒 毕业设计 345600

摘要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规…

java毕业设计,基于layui+SSM实现母婴商场系统

以下是我今年的论文加作品源码,感谢阅读,如需要源码学习,和本论文进行参考,可私聊我,如遇什么不懂的,我很乐意帮助你,让我们一起成长 目录 摘 要 ABSTRACT 1 绪论 1.1 研究背景 1.2 研…

必读的android 文章- 收藏集 - 掘金

写给 Android 开发者的混淆使用手册 - Android - 掘金本文转自:点击打开链接 毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。 首先,这里说的的混淆其实是包括了代码压缩…

淘宝开放平台深入浅出

淘宝开放平台(TOP)的API是基于HTTP协议来调用的,开发者(ISV)可以直接使用TOP提供的官方SDK(支持多种语言,包含了请求的封装,签名加密,响应解释,性能优化等&am…

Docker部署(3)——Dockerfile文件参数

一、Dockerfile文件参数 Dockerfile 是用于构建 Docker 镜像的文件(之前的项目就是将jar包通过Dockerfile文件(D要记得大写!!),打包成一个镜像,当然后面也有一键化部署,使用插件来完成,方式有很多&…
最新文章