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

在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件


title: 在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件
date: 2022-08-28 00:00:00
tags:

  • ElasticSearch
  • elasticsearch-analysis-ik
  • 中文分词插件
    categories:
  • ElasticSearch

安装

手动下载

  • 在官方发布页面下载安装包 elasticsearch-analysis-ik-[版本].zip,其版本与你安装的ES要相同。
  • 执行命令 ~/elasticsearch-8.3.3/plugins/analysis-ik 创建ik插件存储目录,将上面的文件解压后放到analysis-ik目录内:
tianmx@mydebian:[~/elasticsearch-8.3.3/plugins/analysis-ik]: ll
总用量 1.5M
drwxr-xr-x 3 tianmx tianmx 4.0K  828 23:09 ./
drwxr-xr-x 5 tianmx tianmx 4.0K  828 23:08 ../
-rw-r--r-- 1 tianmx tianmx 258K  929  2020 commons-codec-1.9.jar
-rw-r--r-- 1 tianmx tianmx  61K  913  2020 commons-logging-1.2.jar
drwxr-xr-x 2 tianmx tianmx 4.0K  828 17:05 config/
-rw-r--r-- 1 tianmx tianmx  54K  828 22:56 elasticsearch-analysis-ik-8.3.3.jar
-rw-r--r-- 1 tianmx tianmx 720K  929  2020 httpclient-4.5.2.jar
-rw-r--r-- 1 tianmx tianmx 320K  929  2020 httpcore-4.4.4.jar
-rw-r--r-- 1 tianmx tianmx 1.8K  828 22:56 plugin-descriptor.properties
-rw-r--r-- 1 tianmx tianmx  125  828 22:56 plugin-security.policy

远程安装

  • 使用 elasticsearch-plugin 安装(从 v5.5.1 版本开始支持)
  • 执行命令 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/[版本]/elasticsearch-analysis-ik-[版本].zip 将自动下载并解压到插件目录。
  • 下载插件的地址需从IK官方Github发布页面上复制,注意版本号与你安装的ES一致。

手动编译

一般来说官方会适时发布与新版本相匹配包,但有时也并不会那么及时,在写本篇文章时并没有8.3.3的版本。另外如果你想对源码作一些改造调整的话,还是自己编译最方便。

  • 编译环境
    • IntelliJ IDEA 2022.2.1(非必需,你可以用文本编辑器)
    • Apache Maven 3.8.1
    • OpenJDK 17
  • 从Github上下载最新源码,这里我们取master分支的代码。
  • 需要对源码进行如下调整才能顺利编译:
    1. 打开 pom.xml 文件将 <elasticsearch.version>7.16.0</elasticsearch.version> 修改为 <elasticsearch.version>8.3.3</elasticsearch.version>
    2. 将文中 <maven.compiler.target>1.8</maven.compiler.target> 修改为 <maven.compiler.target>17</maven.compiler.target>
    3. 将文中 maven-javadoc-plugin 插件配置整个删除掉。
    4. 打开 IkAnalyzerProvider.java 类修复构造方法报错问题,也就是将 super(indexSettings, name, settings); 改为 super(name, settings); 即可。
  • 在IDEA的Maven窗口中找到Profiles节点,然后选中release,点击左上角刷新按钮,如果想跳过单元测试可点击 Skip Tests 按钮。按住Ctrl键并用鼠标依次单击选中clean和package,最后单击工具类绿色播放按钮。
  • (可选项)如果你想通过命令行执行maven进行编译,可以执行 mvn -DskipTests=true clean package -P release
  • 如果一切顺利你应该能够在编译目录 target/releases/elasticsearch-analysis-ik-8.3.3.zip 中看到打好的zip包。
  • 接下来按上面介绍的手动下载章节来完成安装工作。

测试

注意:插件安装完后要重启ES。

  • 重启ES后执行如下命令查看插件是否安装成功
tianmx@mydebian:[~/elasticsearch-8.3.3]: ./bin/elasticsearch-plugin list
analysis-icu
analysis-ik
analysis-smartcn
  • 如果你已经安装好了Kibana,那么可以进入 http://192.168.0.110:5601/app/dev_tools#/console 页面来测试一下,随便找个索引就可以发送请求测试。
  • ik_smart分词器: 会做最粗粒度的拆分,适合 Phrase 查询。
GET metrics-endpoint.metadata_current_default/_analyze
{"text": "中华人民共和国MN","tokenizer": "ik_smart"
}{"tokens": [{"token": "中华人民共和国","start_offset": 0,"end_offset": 7,"type": "CN_WORD","position": 0},{"token": "mn","start_offset": 7,"end_offset": 9,"type": "ENGLISH","position": 1}]
}
  • ik_max_word分词器: 会将文本做最细粒度的拆分,会穷尽各种可能的组合,适合 Term Query。
GET metrics-endpoint.metadata_current_default/_analyze
{"text": "中华人民共和国MN","tokenizer": "ik_max_word"
}{"tokens": [{"token": "中华人民共和国","start_offset": 0,"end_offset": 7,"type": "CN_WORD","position": 0},{"token": "中华人民","start_offset": 0,"end_offset": 4,"type": "CN_WORD","position": 1},{"token": "中华","start_offset": 0,"end_offset": 2,"type": "CN_WORD","position": 2},{"token": "华人","start_offset": 1,"end_offset": 3,"type": "CN_WORD","position": 3},{"token": "人民共和国","start_offset": 2,"end_offset": 7,"type": "CN_WORD","position": 4},{"token": "人民","start_offset": 2,"end_offset": 4,"type": "CN_WORD","position": 5},{"token": "共和国","start_offset": 4,"end_offset": 7,"type": "CN_WORD","position": 6},{"token": "共和","start_offset": 4,"end_offset": 6,"type": "CN_WORD","position": 7},{"token": "国","start_offset": 6,"end_offset": 7,"type": "CN_CHAR","position": 8},{"token": "mn","start_offset": 7,"end_offset": 9,"type": "ENGLISH","position": 9}]
}
  • 我们前面有安装过analysis-smartcn,如果想测试它只需要将 tokenizer 的值改为 smartcn_tokenizer 即可。
  • IK官方有提供一份测试说明,跟着操作一遍也能验证IK安装是否成功。

相关文章:

在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件

title: 在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件 date: 2022-08-28 00:00:00 tags: ElasticSearchelasticsearch-analysis-ik中文分词插件 categories:ElasticSearch 安装 手动下载 在官方发布页面下载安装包 elasticsearch-analysis-ik-[版本].zip&…...

初识K8s

概览 k8s 概念和架构从零搭建K8s 集群k8s 核心概念搭建集群监控平台搭建高可用k8s集群集群环境 实际部署项目 k8s 概念和架构 1、K8S概述和特性 概述&#xff1a; k8s是谷歌在2014年开源的容器化集群管理系统使用k8s进行容器化应用部署使用k8s利于应用扩展k8s目标实施让部…...

搭建企业级docker仓库—Harbor

一、简介 docker 官方提供的私有仓库 registry&#xff0c;用起来虽然简单 &#xff0c;但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器&#xff0c;harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在…...

【Linux】shell中运算符(整数、字符串)

文章目录1. 整数1.1、算数运算符1.1.1 加减乘除运算1.1.2 号关系运算1.1.2.1 (赋值)、(等于)、!(不等于)的使用1.1.2.2 >、>、<、<的使用1.2 $((运算式)) 双括号形式 、 $[运算式] 语法 进行运算1.3 -eq关系运算符1.4 、、-eq的区别2 字符串2.1 字符串运算3 逻辑运…...

【从零单排Golang】第八话:通过cache缓存模块示范interface该怎么用

和许多面向对象的编程语言一样&#xff0c;Golang也存在interface接口这样的概念。interface相当于是一个中间层&#xff0c;下游只需要关心interface实现了什么行为&#xff0c;利用这些行为做些业务级别事情&#xff0c;而上游则负责实现interface&#xff0c;把这些行为具象…...

解析从Linux零拷贝深入了解Linux-I/O(上)

本文将从文件传输场景以及零拷贝技术深究 Linux I/O 的发展过程、优化手段以及实际应用。前言 存储器是计算机的核心部件之一&#xff0c;在完全理想的状态下&#xff0c;存储器应该要同时具备以下三种特性&#xff1a; 速度足够快&#xff1a;存储器的存取速度应当快于 CPU …...

JavaScript系列之公有、私有和静态属性和方法

文章の目录一、公有属性、公有方法1、定义2、理解3、ES54、ES6二、私有属性、私有方法1、定义2、理解3、ES54、ES6三、静态属性、静态方法1、定义2、理解3、ES54、ES6写在最后一、公有属性、公有方法 1、定义 指的是所属这个类的所有对象都可以访问的属性&#xff0c;叫做公有…...

过滤器与拦截器

文章目录一、前言1、概述2、过滤器与拦截器异同2.1 简介2.2 异同2.3 总结3、Filters vs HandlerInterceptors二、过滤器1、概述2、生命周期2.1 生命周期概述2.2 基于函数回调实现原理3、自定义过滤器两种实现方式3.1 WebFilter注解注册3.2 过滤器&#xff08;配置类注册过滤器&…...

spring boot 和cloud 版本升级

spring boot 和cloud 版本对应 背景&#xff1a;原来一直用的版本是Hoxton.SR12 2.3.10.RELEASE&#xff08;SR12一路升&#xff0c;几乎没有影响&#xff0c;不需要测试&#xff0c;但是换大版本就有点担心&#xff09; 去年2022年底黑鸭子报漏洞把springboot&#xff0c;clou…...

untiy 录制网络摄像头视频并保存到本地文件

网络摄像头使用的是海康威视的&#xff0c;关于如何使用Ump插件播放海康威视rtsp视频流&#xff0c;请参考我的这篇文章 内部有ump插件的下载链接 untiy接入 海康威视网络摄像头 录屏使用的插件是 AVPro movieCapture 4.6.3版&#xff0c; 插件和完整工程的下载链接放在本文的…...

微服务架构设计模式-(15)部署

关联概念 流程 将软件投入到生产环境 架构 软件运行的环境结构 生产环境四个关键功能 服务管理接口 使开发人员能够创建、更新和配置服务 运行时服务管理 确保始终运行一定数量的服务实例非中断更新 监控 让开发人员了解服务情况&#xff0c;包括日志文件和各种应用指标可观…...

Redis:数据结构

简单动态字符串SDS Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组&#xff0c;以下简称C字符串)&#xff0c;而是自己构 建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型&#xff0c;并将SDS用作Redis的默认字符 串表示。 SDS 的实现…...

2.18 设置language和中文输入法

文章目录一&#xff1a;设置language二&#xff1a;设置中文输入法一&#xff1a;设置language nvidia的开发板上默认只有English&#xff0c;需要点击如下管理&#xff1a; 接着进入如下界面&#xff1a; 此时图中的“汉语&#xff08;中国&#xff09;”应该是没有的&…...

图解LeetCode——剑指 Offer 28. 对称的二叉树

一、题目 请实现一个函数&#xff0c;用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样&#xff0c;那么它是对称的。 二、示例 2.1> 示例 1&#xff1a; 【输入】root [1,2,2,3,4,4,3] 【输出】true 2.2> 示例 2&#xff1a; 【输入】root [1,2,2,nul…...

Qt Desginer布局方法

首先将我们需要的控件拖拽到一个合适的位置&#xff0c;该例子中用到了两个label&#xff0c;两个lineEdit和两个pushButton。 然后我们需要利用弹簧来控制控件到控件之间的距离以及控件到窗体边界的距离&#xff0c;因为这里只有一组控件&#xff08;两个label&#xff0c;两个…...

C/C++、Java、Python的比较及学习(3)

函数间的值传递与地址传递 值传递方式&#xff1a;指主调函数把实参的值赋给形参。 在这种传递方式下&#xff0c;主调函数中的实参地址与被调函数中的形参地址是相互独立的。 函数被调用时&#xff0c;系统为形参变量分配内存单元&#xff0c;并将实参的值存入到对应形参的内存…...

智慧校园建设方案

第一章、 智慧教学 6.1. 校本资源库 提供校本资源管理功能&#xff0c;实现学校内的教学资源的共建共享&#xff0c;促进教师之间的交流学习&#xff0c;提升学校的整体教学水平。在本系统中学校可以统一采购资源接入到校本资源库中供教师下载使用&#xff0c;教师也可以将…...

ARM uboot 源码分析5 -启动第二阶段

一、start_armboot 解析6 1、console_init_f (1) console_init_f 是 console&#xff08;控制台&#xff09;的第一阶段初始化。_f 表示是第一阶段初始化&#xff0c;_r 表示第二阶段初始化。有时候初始化函数不能一次一起完成&#xff0c;中间必须要夹杂一些代码&#xff0c;…...

【ip neigh】管理IP邻居( 添加ARP\NDP静态记录、删除记录、查看记录)

一、邻居管理存在状态 1、NUD_NONE&#xff1a; 初始状态。当一个新的路由缓存条目被创建时&#xff0c;arp_bind_neighbour()函数被调用.如果找不到相匹配的ARP缓存条目, neigh_alloc()将创建一个新的ARP缓存条目并设置状态为NUD_NONE. 2、NUD_INCOMPLETE&#xff1a;未完成状…...

Java程序员线上排查问题神器-Arthas

文章目录前言一、Arthas是什么&#xff1f;二、快速入门1.下载2.如何运行三、常用命令1.dashboard2.trace总结前言 最近公司项目版本迭代升级&#xff0c;在开发新需求导致没什么时间写博客。 在开发需求的过程中&#xff0c;我写了一个接口&#xff0c;去批量调内部已经写好…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...