Elasticsearch集成HanLP分词器
1、通过git下载分词器代码。
连接如下:https://gitee.com/hualongdata/hanlp-ext
hanlp官网如下:http://hanlp.linrunsoft.com/
2、下载gradle,如果本机有,就可以略过此步骤。通过gradle官方网站下载,解压,配置环境即可。
官方安装配置说明:https://gradle.org/install/
3、按本地elasticsearch进行打包。
注意:通过git下载的源代码,除非与git配置的版本相同,否则可能会导致你elasticearch无法加载分词器。
修改git下载的源代码包中的elasticsearch版本。并通过gradle进行打包。会自动下载同步elasticsearch对应版本的jar包。
图1
4、按本地环境配置词类位置
图2
5、配置打包的插件所对应支持的elasticesarch的版本。(修改为:5.6.5,es安装的学习环境为5.6.5)
图3
6、完成上述配置把。gradle自动下载对应版本的包。可以通过如下方式进行版本查看。
图4
7、确认对应版本的包存在后,在工程所在目录下执行如下命令进行打包:
gradle -p es-plugin jar buildPluginZip
如下操作:在项目工程目录下,运行命令。
图5
8、打包完成后,会出现对应的安装包。
图6
9、在elasticsearch安装目录下执行插件安装命令。
./bin/elasticsearch-plugininstallfile:///Users/jiangyu/code/git/hanlp-ext/es-plugin/build/distributions/elasticsearch-hanlp-5.6.5.zip
图7
可以看到上面安装完成的提示。有个过程要选择y。
注:如果上向的命令出现如下报错。错误提示如下:
图8
上述错误提示,说明有两个相同的jar包存在。所以有提示,可以先在build.gradle配置中,找到打包的过程,增加一条path.contains("org.apache.logging.log4j")配置,这样打包时,这个jar包不会在被找到插件中。配置修改完成后。从新执行第7步『gradle -p es-plugin jar buildPluginZip』,进重新打包。再重新安装插件即可。
图9
(注:测试时,这个包不能去掉。会导致测试插件时,缺少log4j包)
10、给插件增加访问权限
图10
在系统的elasticsearch的安装目录下,找到config目录,通过vi jvm.options打开文件进行编辑。增加如下内容:用来指定安全配置文件。
图11
11、修改elasticsearch配置,在系统的elasticsearch的安装目录下,找到bin目录,通过vi elasticearch.in.sh打开文件进行编辑。增加如下内容:用来指定安全配置文件。
图12
12、在文件中增加指定的lib包。我们将插件要用到的Lib包路径引入到系统环境变量中。
图13
13、安装完成后可以使用如下命令进行验证。 analyzer,指定分词器为:"hanlp"
GET /_analyze
{
"analyzer" : "hanlp",
"text": ["记录就是用来打破的。你准备好向新的记录发起冲击了吗?"]
}
图14
图15
如果不指定分词器的话。所以返回结果,type没有说明词性,都是按单字返回结果。
GET /_analyze
{
"text": ["记录就是用来打破的。你准备好向新的记录发起冲击了吗?"]
}
图16
参考连接如下:
https://gitee.com/hualongdata/hanlp-ext/tree/master/es-plugin、
其它操作:
如果想移除或删除插件,可以执行如下命令
图17
转载自romil 的博客
Elasticsearch集成HanLP分词器的更多相关文章
- Elasticsearch集成HanLP分词器-个人学习
1.通过git下载分词器代码. 连接如下:https://gitee.com/hualongdata/hanlp-ext hanlp官网如下:http://hanlp.linrunsoft.com/ ...
- Elasticsearch集成ik分词器
1.插件地址https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.0.0/elasticsearch-anal ...
- ES系列一、CentOS7安装ES 6.3.1、集成IK分词器
Elasticsearch 6.3.1 地址: wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3. ...
- Elasticsearch之中文分词器插件es-ik(博主推荐)
前提 什么是倒排索引? Elasticsearch之分词器的作用 Elasticsearch之分词器的工作流程 Elasticsearch之停用词 Elasticsearch之中文分词器 Elasti ...
- elasticsearch教程--中文分词器作用和使用
概述 本文都是基于elasticsearch安装教程 中的elasticsearch安装目录(/opt/environment/elasticsearch-6.4.0)为范例 环境准备 ·全新最小 ...
- 如何给Elasticsearch安装中文分词器IK
安装Elasticsearch安装中文分词器IK的步骤: 1. 停止elasticsearch 2.2的服务 2. 在以下地址下载对应的elasticsearch-analysis-ik插件安装包(版 ...
- 【自定义IK词典】Elasticsearch之中文分词器插件es-ik的自定义词库
Elasticsearch之中文分词器插件es-ik 针对一些特殊的词语在分词的时候也需要能够识别 有人会问,那么,例如: 如果我想根据自己的本家姓氏来查询,如zhouls,姓氏“周”. 如 ...
- solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)
基本说明 Solr是一个开源项目,基于Lucene的搜索服务器,一般用于高级的搜索功能: solr还支持各种插件(如中文分词器等),便于做多样化功能的集成: 提供页面操作,查看日志和配置信息,功能全面 ...
- 沉淀再出发:ElasticSearch的中文分词器ik
沉淀再出发:ElasticSearch的中文分词器ik 一.前言 为什么要在elasticsearch中要使用ik这样的中文分词呢,那是因为es提供的分词是英文分词,对于中文的分词就做的非常不好了 ...
随机推荐
- 构造方法调用另一个构造方法,用this
using System; class Person { public int age; public string name; public Person(int age, string name) ...
- Java学习笔记28(IO字节流)
IO定义: 写:Output操作:将内存上的数据持久化 到设备上,这个动作称为输出: 读:Input操作:把硬盘上的东西读取到内存,这个动作称为输入: 这两种操作称为IO流 ...
- java学习笔记16(正则表达式)
正则表达式: 定义:在pattern类中有简单规则定义,具有特殊含义的字符串: 作用:用于一些字符串,比如验证注册邮箱,密码,用户名等: 正则表达式的语法: 1)字符:'\'反斜杠 \t 代表制表 ...
- JAVA的设计模式之装饰设计模式
1.装饰设计模式 顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下: 2.看这个图可能不容易理解,举两个 ...
- SQL注入之Sqli-labs系列第十五关和第十六关(基于POST的时间盲注)
开始挑战第十五关(Blind- Boolian Based- String)和 第十六关(Blind- Time Based- Double quotes- String) 访问地址,输入报错语句 ' ...
- 普通new和placement new的重载
对于自定义对象,我们可以重载普通new操作符,这时候使用new Test()时就会调用到我们重载的普通new操作符. 示例程序: #include <iostream> #include ...
- python 实现图的深度优先和广度优先搜索
在介绍 python 实现图的深度优先和广度优先搜索前,我们先来了解下什么是"图". 1 一些定义 顶点 顶点(也称为"节点")是图的基本部分.它可以有一个名称 ...
- Vim正则表达式匹配替换字符串
/********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用V ...
- linux下history命令显示执行时间
想在输入history命令之后,显示自己历史的命令执行的时间,需要在用户目录下~/.bashrc的文件末尾追加添加如下几行 之前一直想看一下自己历史命令执行的时间,找了很多教程都没有卵用,最终参考了如 ...
- JAVA基础部分复习(三、泛型)
JAVA泛型的基本使用: /** * JAVA泛型的使用 * 定义:泛型的本质是参数化类型,就是说所操作的数据类型被指定为一个参数. * * 定义泛型方法的规则 * 1.所有泛型方法声明都有一个类型参 ...