当前位置: 首页 > news >正文

Elasticsearch分词器基础安装

简介

Elasticsearch (ES) 是一个基于 Lucene 的搜索引擎,分词器是其核心组件之一,负责对文本数据进行分析和处理。

1. 文本分析
分词器将输入的文本拆分成一个个单独的词(tokens),以便后续的索引和搜索。例如,输入的文本 "Elasticsearch分词器" 可能会被分词器拆分为 ["Elasticsearch", "分词器"]2. 索引优化
在将文档存储到 Elasticsearch 中之前,分词器可以去除一些不必要的字符和停用词(如“的”、“是”等),并将文本标准化(例如小写化)。这有助于减少索引的大小和提高搜索效率。3. 多语言支持
Elasticsearch 支持多种语言的分词器,例如中文分词器、英文分词器等。不同的分词器使用不同的规则和算法来处理特定语言的文本,以便提供更精确的搜索结果。4. 提升搜索质量
通过有效的分词,分词器可以提高搜索的相关性和准确性。分词器能够识别出用户查询中的关键词,并将其与索引中的词进行匹配,从而提高搜索结果的质量。5. 分析文本数据
分词器还可以用于分析文本数据的特点,比如词频统计、短语提取等。这对后续的数据挖掘和分析工作非常重要。6. 自定义分词
Elasticsearch 允许用户自定义分词器,开发者可以根据具体需求定义分词规则和过滤器,以满足特定场景的需求。7. 创建和配置索引
在创建索引时,可以指定使用的分词器。根据文档类型或应用场景的不同,可以选择不同的分词器来满足需求。

常见的分词器

Elasticsearch 提供了多种分词器(analyzers)以支持不同类型的文本分析和搜索需求。以下是一些常见的分词器:1. 标准分词器(Standard Analyzer)
这是 Elasticsearch 默认的分词器,适用于大多数语言。它会将文本分割为单词,并去除停用词(如“的”、“是”等)。2. 中文分词器
IK Analyzer:一个流行的中文分词插件,支持细粒度和粗粒度两种分词模式,适合处理中文文本。
HanLP:另一种中文分词器,支持多种自然语言处理功能,包括分词、词性标注等。3. Whitespace 分词器
将输入文本按空白字符进行分词,适合处理不需要复杂分析的情况。4. Keyword 分词器
将整个输入文本视为一个单一的词,适用于需要精确匹配的场景,如 ID 和特定标签。5. NGram 分词器
生成输入文本的 N-gram 形式,适合用于模糊搜索和自动补全功能。6. Path Hierarchy 分词器
适用于处理文件路径和层级结构数据,能够正确分词层级关系。7. Edge NGram 分词器
仅生成输入文本的前 N 个字符的 N-gram,适合用于前缀匹配的搜索场景。8. Stop Token 分词器
用于去除常见的停用词,这些词通常不会对搜索结果产生实质性影响。9. Custom Analyzer
用户可以根据需求自定义分词器,组合不同的分词和过滤器,以满足特定的分析需求。

中文分词器 ik

默认的分词器是标准分词器,它会将文本分割为单词,并去除停用词(如“的”、“是”等),在生产实际使用过程中,是不符合国内的业务的

所以我们需要引入中文分词器 ik

  • IK Analyzer:一个流行的中文分词插件,支持细粒度和粗粒度两种分词模式,适合处理中文文本。

安装步骤

注意:安装的版本需要跟es的版本保持一致,我这里使用的7.3.2的

下载

  • 方式一:如果需要的ik是7.3.2 ,否则可以选择其他的方式
  • 公众号获取,回复ik<font style="color:rgb(26, 27, 28);">分词器</font>

  • 方式二:github下载

https://github.com/infinilabs/analysis-ik/tags

找到自己需要的版本

例如我需要下载v7.3.2

下载zip的方式

上传,解压

# 切换到es下的plugins 这里根据自己es的安装目录
cd elasticsearch-7.3.2/plugins
# 上传
rz
# 解压
unzip elasticsearch-analysis-ik-7.3.2.zip -d ik
# 删除压缩包,否则启动会报错
rm -rf elasticsearch-analysis-ik-7.3.2.zip

重启es

  • ps -ef|grep elasticsearch 查看es的pid

  • 杀死程序 kill -9 pid
  • 进入es的bin目录,执行 ./elasticsearch -d

分词测试

使用kibana进行查看

  • 标准分词器测试
POST /_analyze
{"tokenizer": "standard",  "text": "Elasticsearch分词器测试"
}

  • ik分词器测试
POST /_analyze
{"tokenizer": "ik_max_word","text": "Elasticsearch分词器测试"
}

可以看出二者的区别

相关文章:

Elasticsearch分词器基础安装

简介 Elasticsearch (ES) 是一个基于 Lucene 的搜索引擎&#xff0c;分词器是其核心组件之一&#xff0c;负责对文本数据进行分析和处理。 1. 文本分析 分词器将输入的文本拆分成一个个单独的词&#xff08;tokens&#xff09;&#xff0c;以便后续的索引和搜索。例如&#x…...

Django-邮件发送

邮件相关协议&#xff1a; SMTP&#xff08;负责发送&#xff09;&#xff1a; IMAP&#xff08;负责收邮件&#xff09;&#xff1a; POP3&#xff08;负责收邮件&#xff09;: 两者区别&#xff1a; Django发邮件&#xff1a; 邮箱相关配置&#xff1a; settings中&…...

SchooWeb2--基于课堂学习到的知识点2

SchoolWeb2 form表单input控件中各type中value值含义 默认值 text password hidden 提交给服务器的值 select option radio属性的name含义 name值相同表示是同一组单选框中的内容 script的位置 head标签 在head中使用script可以保证在页面加载时进行加载&#xff…...

Android.mk 写法

目录放在odm/bundled_uninstall_back-app/VantronMdm/VantronMdm.apk LOCAL_PATH : $(my-dir) include $(CLEAR_VARS) LOCAL_MODULE : VantronMdm LOCAL_MODULE_CLASS : APPS LOCAL_MODULE_PATH : $(TARGET_OUT_ODM)/bundled_uninstall_back-app LOCAL_SRC_FILES : $(LOCAL_M…...

精通Javascript 函数式array.forEach的8个案例

JavaScript是当今流行语言中对函数式编程支持最好的编程语言。我们继续构建函数式编程的基础&#xff0c;在前文中分解介绍了帮助我们组织思维的四种方法&#xff0c;分别为&#xff1a; array.reduce方法 帮你精通JS&#xff1a;神奇的array.reduce方法的10个案例 array.map方…...

忘记无线网络密码的几种解决办法

排名由简单到复杂 1网线直连&#xff1b; 2查看密码备份文件&#xff1b; 3问人要密码&#xff1b; 4已连接无线设备生成二维码扫描即可上网&#xff1b; 5路由器有wps功能&#xff0c;设备输入pin码可上网&#xff1b; 6已连接电脑右键wifi名&#xff0c;选择属性&#xff0c;…...

git add你真的用明白了吗?你还在无脑git add .?进入暂存区啥意思?

git add 命令用于将文件的改动添加到暂存区&#xff08;staging area&#xff09;&#xff0c;为下一次提交做好准备。简单来说&#xff0c;它标记了哪些文件或改动会被纳入下次 git commit 中。以下是 git add 的作用和使用场景&#xff1a; 1. 作用 git add 将指定文件或文…...

Vue-Route

一、相关理解 1. vue-router的理解 vue的一个插件库&#xff0c;专门用来实现SPA应用 2. 对SPA应用的理解 单页Web应用整个应用只有一个完整的页面点击页面中的导航链接不会刷新页面&#xff0c;只会做页面的局部更新数据需要通过ajax请求获取 3. 路由的理解 什么是路由 …...

字符串逆序(c语言)

错误代码 #include<stdio.h>//字符串逆序 void reverse(char arr[], int n) {int j 0;//采用中间值法//访问数组中第一个元素和最后一个元素//交换他们的值&#xff0c;从而完成了字符串逆序//所以这个需要临时变量for (j 0; j < n / 2; j){char temp arr[j];arr[…...

芯片上音频相关的验证

通常芯片设计公司&#xff08;比如QUALCOMM&#xff09;把芯片设计好后交由芯片制造商&#xff08;比如台积电&#xff09;去生产&#xff0c;俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证&#xff08;这里说的验证是FPGA&#xff08;现场…...

【C/C++】函数的递归

1.什么是递归&#xff1f; 递归就是递推和回归&#xff0c;以数学函数f(x) x为例&#xff1a; 递推&#xff1a;f(x) f(x - 1) 1 ; f(x - 1) f(x - 2) 1 ; f(x - 2) …… 回归&#xff1a;……; f(x - 2) f(x - 1) 1 ; f(x - 1) f(x) 1; 可以看出&#xff0c; 递推和…...

《链表篇》---两两交换链表中的节点(中等)

题目传送门 1.定义一个虚拟节点链接链表 2.定义一个当前节点指向虚拟节点 3.在当前节点的下一个节点和下下一个节点都不为null的情况下。 定义 node1和node2。保存当前节点后面两个节点的地址。cur.next node2;node1.next node2.next;node2.next node1;cur node1; 4.返回re…...

Fakelocation 步道乐跑(Root真机篇)

前言:需要 Fakelocation&#xff0c;真机Root,步道乐跑&#xff0c;Dia&#xff0c;MT管理器系统需求 Fakelocation | MT管理器 | Dia | 环境模块 任务一 真机Root&#xff08;德尔塔&#xff0c;过momo&#xff0c;刷环境模块&#xff09; 任务二 前往Dia查看包名&#xff08…...

PyEcharts | 全局配置项中初始配置项和区域缩放配置项的使用

全局配置项可通过set_global_opts方法设置 一个图像主要的内容 引入包 from pyecharts.charts import Bar,Line from pyecharts import options as opts from pyecharts.faker import Faker from pyecharts.globals import ThemeType,RenderTypefrom pyecharts.globals imp…...

突破语言壁垒:Cohere 发布多语言大模型 Aya Expanse

前沿科技速递&#x1f680; 在多语言大模型领域&#xff0c;Cohere 再次迎来了突破&#xff01;10月24日&#xff0c;Cohere的研究实验室 Cohere For AI 正式发布了最新的多语言AI模型家族 —— Aya Expanse。该系列模型开放了8B和32B参数两个版本,为全球AI爱好者带来了崭新的多…...

内容安全与系统构建加速,助力解决生成式AI时代的双重挑战

内容安全与系统构建加速&#xff0c;助力解决生成式AI时代的双重挑战 0. 前言1. PRCV 20241.1 大会简介1.2 生成式 Al 时代的内容安全与系统构建加速 2. 生成式 AI2.1 生成模型2.2 生成模型与判别模型的区别2.3 生成模型的发展 3. GAI 内容安全3.1 GAI 时代内容安全挑战3.2 图像…...

Scrapy源码解析:DownloadHandlers设计与解析

1、源码解析 代码路径&#xff1a;scrapy/core/downloader/__init__.py 详细代码解析&#xff0c;请看代码注释 """Download handlers for different schemes"""import logging from typing import TYPE_CHECKING, Any, Callable, Dict, Gener…...

shell基础-awk

awk 是一个强大的文本处理工具&#xff0c;广泛用于 Unix 和 Linux 系统中。它可以用来处理和分析文本文件&#xff0c;特别是那些包含结构化数据的文件。以下是 awk 的基础知识和一些常用示例。 基本概念 记录和字段&#xff1a; 记录&#xff1a;awk 处理的每一行文本称为一…...

@Controller 和 @RestController 区别

功能范畴: Controller&#xff1a;用于定义一个控制器类&#xff0c;主要用于处理用户请求并返回视图&#xff08;通常是HTML页面&#xff09;。常常与 Spring MVC 的视图解析器一起使用。RestController&#xff1a;是一个特殊类型的控制器&#xff0c;用于返回数据而不是视图…...

【数据库设计】规范设计理论之数据依赖的公理系统(1)

知道范式的几种分类之后还并不能帮助我们设计一款好的数据库&#xff0c;在对关系进行拆解&#xff08;指模式分解&#xff09;之前&#xff0c;我们需要引入一个理论基础让设计过程变得有迹可循和具备一定的严谨性以此来支撑数据库背后的可靠性。 Armstrong公理系统 所谓公理…...

Leetcode 合并两个数组

算法思想是双指针从后往前合并&#xff0c;利用了 nums1 数组的尾部空间来存储合并后的结果&#xff0c;从而避免了额外空间的使用。具体步骤如下&#xff1a; 初始化指针&#xff1a; i 指向 nums1 的有效元素末尾&#xff0c;即位置 m - 1。j 指向 nums2 的末尾&#xff0c;即…...

Native Crash 信号速查

重点信号 SIGSEGV&#xff08;11&#xff09; signal segmentation violation&#xff1a;段错误无效内存访问访问无权访问的内存空指针、越界访问&#xff08;mmap&#xff1f;&#xff09; SIGBUS&#xff08;7&#xff09; Bus Error&#xff1a;总线错误非法内存访问访问 …...

【工具变量】自由贸易试验区试点DID数据集(2003-2023年)

数据简介&#xff1a;自由贸易试验区&#xff08;Free Trade Zone&#xff0c;简称FTZ&#xff09;是中国ZF在新形势下为了推进GG开放、提高开放型经济水平而采取的重要战略举措。自贸试验区在一国的部分领土内运入任何货物&#xff0c;被认为在关境以外&#xff0c;免于实施惯…...

js-在数组中根据name查找出对应id(find与filter方法)

1.根据name查找出对应id 使用数组的 find 方法来根据对象的某个属性&#xff08;如名称&#xff09;查找对应的对象&#xff0c;并获取该对象的 id 属性。 2.find 方法 const array [ { id: 1, name: Alice }, { id: 2, name: Bob }, { id: 3, name: Charlie } ]; 使用…...

推荐:自然语言处理方向的一些创新点

以下是自然语言处理研究方向的一些创新点&#xff1a; 一、预训练模型的改进与优化 模型架构创新 融合多模态信息&#xff1a; 传统的自然语言处理模型主要处理文本信息。创新点在于将图像、音频等多模态信息融合到预训练模型中。例如&#xff0c;对于描述一幅画的文本&#x…...

成都睿明智科技有限公司抖音电商服务的领航者

在这个短视频风起云涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为无数商家争夺流量与销量的新战场。在这片红海之中&#xff0c;如何脱颖而出&#xff0c;实现销售额的飞跃&#xff1f;今天&#xff0c;就让我们一同走进成都睿明智科技有限公司&#xf…...

【大数据学习 | kafka】kafka的整体框架与数据结构

1. kafka的整体框架 首先kafka启动以后所有的broker都会向zookeeper进行注册&#xff0c;在/brokers/ids中以列表的形式展示所有的节点&#xff0c;在/controller节点中使用独享锁实现broker的选举&#xff0c;其中一个机器为主节点。其他的为从节点&#xff0c;选举的根本原则…...

隐私保护下的数据提取策略

在隐私保护下进行数据提取&#xff0c;需要采取一系列策略来确保个人隐私得到妥善保护&#xff0c;同时满足数据使用的需求。以下是一些关键的策略和方法&#xff1a; 一、数据最小化原则 定义&#xff1a;仅收集和提取必要的数据&#xff0c;避免收集过多的个人信息或不相关…...

vue 和 django 报 CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种跨域访问的机制,

在使用 Vue 和 Django 进行前后端分离开发时&#xff0c;如果遇到 AxiosError: Network Error 的错误&#xff0c;通常可能是由于以下几种原因引起的。下面列出了一些常见的原因和解决方案。 1. CORS&#xff08;跨源资源共享&#xff09;问题 当你的 Vue 应用和 Django 后端…...

「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio 插件安装与配置

本篇将专注于如何在 DevEco Studio 中安装和配置必要的插件&#xff0c;以增强开发功能和提升效率。通过正确配置插件&#xff0c;开发流程能够得到简化&#xff0c;开发体验也会更加顺畅。 关键词 插件安装配置优化DevEco Studio开发工具 一、插件的重要性 插件可以大幅扩展…...