ES分词技术

Elasticsearch(ES)的搜索功能依赖于分词技术,分词是将文本拆分为单个词或词项的过程,直接影响搜索的准确性和效率。以下是ES中分词技术的详细介绍:

1. 分词器(Analyzer)

分词器是分词的核心组件,通常由以下三部分组成:

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

2. 内置分词器

ES提供了多种内置分词器,常见的有:

  • Standard Analyzer:默认分词器,按空格和标点分词,支持多语言。
  • Simple Analyzer:按非字母字符分词,并将词项转为小写。
  • Whitespace Analyzer:仅按空格分词,不转换大小写。
  • Keyword Analyzer:将整个文本作为一个词项,适用于精确匹配。
  • Pattern Analyzer:使用正则表达式分词。
  • Language Analyzers:针对特定语言优化,如英语、中文。

3. 自定义分词器

用户可以根据需求自定义分词器,配置如下:

PUT /my_index
{"settings": {"analysis": {"analyzer": {"my_custom_analyzer": {"type": "custom","tokenizer": "standard","char_filter": ["html_strip"],"filter": ["lowercase", "my_custom_filter"]}},"filter": {"my_custom_filter": {"type": "stop","stopwords": ["and", "the"]}}}}
}

4. 分词过程

分词过程包括以下步骤:

  1. 字符过滤:预处理文本。
  2. 分词:将文本拆分为词项。
  3. 词项过滤:进一步处理词项。

5. 中文分词

中文分词较为复杂,常用插件有:

  • IK Analyzer:支持细粒度和智能分词模式。
  • Jieba Analyzer:基于结巴分词,支持自定义词典。

6. 使用示例

6.1 创建索引并指定分词器
PUT /my_index
{"settings": {"analysis": {"analyzer": {"my_analyzer": {"type": "custom","tokenizer": "ik_max_word"}}}},"mappings": {"properties": {"content": {"type": "text","analyzer": "my_analyzer"}}}
}
6.2 测试分词器
POST /my_index/_analyze
{"analyzer": "my_analyzer","text": "这是一个分词测试"
}

7. 总结

ES的分词技术通过字符过滤、分词和词项过滤等步骤,结合内置和自定义分词器,支持多种语言和复杂需求。中文分词则依赖插件如IK Analyzer和Jieba Analyzer。合理配置分词器能显著提升搜索效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/71143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot3 快速启动框架

文章目录 1 SpringBoot3 介绍 1.1 SpringBoot3 简介1.2 快速入门1.3 入门总结 2 SpringBoot3 配置文件 2.1 统一配置管理概述2.2 属性配置文件使用2.3 YAML配置文件使用2.4 批量配置文件注入2.5 多环境配置和使用 3 SpringBoot 整合 springMVC 3.1 实现过程3.2 web相关配置3.3…

小小小病毒(3)(~_~|)

一分耕耘一分收获 声明: 仅供损害电脑,不得用于非法。损坏电脑,作者一律不负责。此作为作者原创,转载请经过同意。 欢迎来到小小小病毒(3) 感谢大家的支持 还是那句话:上代码! …

Map 和 Set

目录 一、搜索 概念: 模型: 二、Map ​编辑 1.Map 实例化: 2. Map的常见方法: 3.Map的常见方法演示: 1. put(K key, V value):添加键值对 3. containsKey(Object key):检查键是否存在 4.…

pytest测试专题 - 2.1 一种推荐的测试目录结构

<< 返回目录 1 pytest测试专题 - 2.1 一种推荐的测试目录结构 2 pytest 项目目录结构及文件功能 以下是典型 pytest 项目中常见的文件和目录结构及其功能的概述&#xff1a; 2.1 文件/目录结构 文件/目录功能描述test_ 文件* 主测试文件&#xff0c;命名通常以 test_…

常用架构图:业务架构、产品架构、系统架构、数据架构、技术架构、应用架构、功能架构及信息架构

文章目录 引言常见的架构图I 业务架构图-案例模块功能说明1. 用户界面层 (UI)2. 应用服务层3. 数据管理层4. 基础设施层业务流程图示例技术实现II 功能架构图 -案例功能模块说明1. 船舶监控模块2. 报警管理模块3. 应急响应模块4. 通信管理模块5. 数据分析模块数据管理层基础设施…

爬虫实战:利用代理ip爬取推特网站数据

引言 亮数据-网络IP代理及全网数据一站式服务商屡获殊荣的代理网络、强大的数据挖掘工具和现成可用的数据集。亮数据&#xff1a;网络数据平台领航者https://www.bright.cn/?promoRESIYEAR50/?utm_sourcebrand&utm_campaignbrnd-mkt_cn_csdn_yingjie202502 在跨境电商、社…

蓝桥杯篇---温度传感器 DS18B20

文章目录 前言DS18B201. DS18B20 引脚说明2. 单总线通信协议3. DS18B20 操作流程初始化写操作读操作 4. 示例代码5. 代码说明6. 注意事项总结 前言 本文简单介绍了IAP15F2K61S2中温度传感器模块DS18B20的使用。 DS18B20 DS18B20 是一款数字温度传感器&#xff0c;采用单总线&…

YOLOv5-Seg 深度解析:与 YOLOv5 检测模型的区别

YOLOv5-Seg 深度解析&#xff1a;与 YOLOv5 检测模型的区别 1. 概述 YOLOv5 是一个强大的目标检测框架&#xff0c;而 YOLOv5-Seg 是其扩展版本&#xff0c;增加了实例分割功能。 YOLOv5&#xff08;目标检测&#xff09; vs YOLOv5-Seg&#xff08;实例分割&#xff09; 版…

传感器篇(一)——深度相机

目录 一 概要 二 原理 三 对比 四 产品 五 结论 一 概要 深度相机是一种能够获取物体深度信息的设备&#xff0c;相较于普通相机只能记录物体的二维图像信息&#xff0c;深度相机可以感知物体与相机之间的距离&#xff0c;从而提供三维空间信息。在你正在阅读的报告中提到…

docker部署单机版doris,完整无坑

文章目录 一、部署1、修改内核参数2、下载Docker 开发环境镜像3、下载安装包4、启动镜像5、配置fe6、配置be7、远程连接 二、运维命令参考资料 一、部署 1、修改内核参数 在启动doris的be时&#xff0c;需要将 Linux 操作系统的内核参数设置为2000000&#xff0c;这里是Doris…

二叉树(C语言版)

文章目录 二叉树完全二叉树和满二叉树二叉搜索树基本操作实现代码运行结果 分析红黑树2-3-4树(理论模型)红黑树(实际实现) 二叉树 树是一种层次结构&#xff0c;它在现实生活中是广泛存在的&#xff0c;比如&#xff1a;族谱(family tree)&#xff0c;组织机构&#xff0c;目录…

HCIA项目实践---ACL访问控制列表相关知识和配置过程

十 ACL访问控制列表 1 策略的概念 在网络连通之后&#xff0c; 把所有为了追求控制而实现的技术都叫策略 2 访问控制 在路由器流量流入或者流出的接口上&#xff0c;匹配流量&#xff0c;执行相应的动作。&#xff08;流量流入或者流出的接口并不是一个固定的概念而是一个相对的…

3-初始化项目

在文件UIStaticHelper配置路径 YIUI自动化工具 在Tools->YIUI自动化工具即可看到面板。有6个功能&#xff0c;如下所示。 在运行的过程中&#xff0c;用绑定代替反射是因为手机运行放射是开销比较大的&#xff0c;所以用绑定代替反射&#xff0c;在发布前UI如果有改动&…

人工智能的现状与未来发展趋势分析

引言 人工智能(AI)作为21世纪最具革命性的技术之一,正在深刻改变我们的生活和工作方式。从早期的概念提出到如今的广泛应用,AI经历了漫长而曲折的发展历程。本文旨在全面分析AI的现状,并探讨其未来发展趋势,以期为读者提供一个清晰而深入的视角。 一、人工智能的发展历…

基于Spring Boot的家电销售展示平台设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

栈与队列(C语言版)

文章目录 栈与队列1. 栈基本操作实现(基于链表)代码运行结果 应用场景 2. 队列基本操作实现代码运行结果 应用场景 栈与队列 1. 栈 栈是一种操作受限的线性结构。操作受限体现在&#xff0c;栈只能在一端添加和删除元素&#xff0c;符合后进先出 ( LIFO ) 的特性&#xff0c;…

第二节 字符串、列表

字符串 字符串的切片 使用[ : ]截取&#xff0c;左闭右开&#xff0c;示例&#xff1a; str"nihao" print(str[0:3]) 第一个参数省略默认从头开始&#xff0c;第二个参数省略默认截取到末尾 当第二个参数或第三个参数为-1时&#xff0c;从右向左取值&#xff0c…

【NLP 22、语言模型 language model】

有时候我也想听听&#xff0c;我在你心里&#xff0c;是什么样子 —— 25.1.12 一、什么是语言模型 语言是灵活的&#xff0c;也是有规律的 了解一门语言的人可以判断一句话是否“合理” 通俗来讲&#xff0c;语言模型用来评价一句话(句子可以看作是字的组合)是否“合理”或…

【CSS进阶】常见的页面自适应的方法

在前端开发中&#xff0c;自适应布局&#xff08;Responsive Design&#xff09;是一种让网页能够适应不同屏幕尺寸、设备和分辨率的技术。常见的自适应布局方法包括 流式布局、弹性布局&#xff08;Flexbox&#xff09;、栅格布局&#xff08;Grid&#xff09;、媒体查询&…

通过openresty和lua实现随机壁纸

效果&#xff1a; 图片存放路径&#xff1a; /home/jobs/webs/imgs/ ├── default/ │ ├── image1.jpg │ ├── image2.png ├── cats/ │ ├── cat1.jpg │ ├── cat2.gif ├── dogs/ │ ├── dog1.jpg访问http://demo.com/imgs/default 随机返回…