目录
1、es之ansj分词安装与使用介绍
详情
1、es之ansj分词安装与使用介绍
- ansj分词插件的说明
- es5.0版本之前配置ansj均是在elasticsearch.yml中配置
- es5.0版本及之后,均不支持配置文件方式,仅支持api方式进行设置
- ansj分词插件的安装
- 分词插件的下载
- 从github开源网址下载
- 分词插件的下载
- es5.0版本之前配置ansj均是在elasticsearch.yml中配置
https://github.com/NLPchina/elasticsearch-analysis-ansj/releases/download/v6.3.1/elasticsearch-analysis-ansj-6.3.1.0-release.zip
-
天亮教育官方百度云盘中下载
- 分词插件的配置步骤
- 将下载下来的zip包,拷贝到es_home/plugins下
- 将zip解压到当前目录下
- 分词插件的配置步骤
- 将之前的es-ansj的zip包删除掉。
- 重启es(使之加载分词器配置,使之具备分词的能力,此时还不能生效和使用)
- 通过es提供的api方式配置ansj分词插件
- 1、首先关闭索引服务(分词配置不支持动态设置,须关闭索引服务后才可以进行设置分词)
curl -XPOST ‘localhost:9200/_all/_close’ - 2、设置分词方式
- 1、首先关闭索引服务(分词配置不支持动态设置,须关闭索引服务后才可以进行设置分词)
curl -XPUT 'http://localhost:9200/_all/_settings?preserve_existing=true' -H 'Content-Type: application/json' -d '{
"index.analysis.analyzer.default.type" : "index_ansj",
"index.analysis.analyzer.default_search.type" : "query_ansj"
}'
- 关于分词方式的说明、
- 索引分词
- 尽可能分出所有的分词结果,尽量提高召回率
- 召回率
- 官方定义:搜索结果的正确内容条目占文档中所有相关内容条目的比例
- 白话解释:应该被搜索出来的东西,尽可能都被搜索出来,即hit命中的比例
- 召回率
- 尽可能分出所有的分词结果,尽量提高召回率
- 搜索分词
-
一定是索引分词的一个子集,尽量保证准确率
* 准确率
* 官方定义:搜索结果中的正确内容条目占搜索出来的内容条目的比例
* 白话解释:尽量保证搜索出来的内容条目,对的越多越好。 -
3、打开索引服务,对外正常提供搜索服务
curl -XPOST ‘localhost:9200/_all/_open’ -
ansj分词插件安装成功后的测试
- web http请求接口说明
- /_cat/ansj: 执行分词
- /_cat/ansj/config: 显示全部配置
- /_ansj/flush/config: 刷新全部配置
- /_ansj/flush/dic: 更新全部词典。包括用户自定义词典,停用词典,同义词典,歧义词典,crf
- web http请求接口测试
- web http请求接口说明
-
问题发现
- 索引分词效果并不理想,分的不够细,会直接影响搜索效果。
- 理想效果应如下图:
-
-
主要原因:开源版es-ansj分词的配置有bug,没有加载完全词库导致的。
- 解决方法
- 1、下载ansj分词最新版,获取其最新分词库和配置文件
- 下载地址-1:https://github.com/NLPchina/ansj_seg/releases,找最新版即可
- 下载地址-2
- 1、下载ansj分词最新版,获取其最新分词库和配置文件
- 解决方法
2、解压缩后,拿到其library目录和ansj_library.properties文件
3、将如上2个文件,拷贝到es_home根目录下
-
4、重启es即可生效
web http请求接口再测试,依然以之前的示例作为比较,即可获取理想的索引和搜索分词的效果。- es-ansj插件使用介绍
- 通过head新建一个索引以及一个类型的mapping结构,并指定相关字段的分词设置
- 原生结构
- 通过head新建一个索引以及一个类型的mapping结构,并指定相关字段的分词设置
- es-ansj插件使用介绍
curl -XPUT http://localhost:9200/test -H 'Content-Type: application/json' -d '{
"settings" : {
"number_of_shards" : 1,
"number_of_replicas" : 0
},
"mappings" : {
"student" : {
"_all" : { "enabled" : false },
"properties" : {
"name" : { "type" : "text", "analyzer" : "index_ansj", "search_analyzer" : "query_ansj" },
"classname" : { "type" : "text", "analyzer" : "index_ansj", "search_analyzer" : "query_ansj" },
"gender" : { "type" : "text" }
}
}
}
}'
- 通过head复合页面发送请求
{
"settings" : {
"number_of_shards" : 1,
"number_of_replicas" : 0
},
"mappings" : {
"student" : {
"_all" : { "enabled" : false },
"properties" : {
"name" : { "type" : "text", "analyzer" : "index_ansj", "search_analyzer" : "query_ansj" },
"classname" : { "type" : "text", "analyzer" : "index_ansj", "search_analyzer" : "query_ansj" },
"gender" : { "type" : "text" }
}
}
}
}
- 通过head向指定索引名称及其指定的type新建一条数据
- 原生结构
curl -XPUT 'http://localhost:9200/test/student/1?pretty' -H 'Content-Type: application/json' -d '
{
"name": "张自强",
"classname": "计算机科技技术1班",
"gender": "男生"
}'
- 通过head复合页面发送请求
{
"name": "张自强",
"classname": "计算机科技技术1班",
"gender": "男生"
}
//第2名
{
"name": "李四",
"classname": "计算机科技技术2班",
"gender": "男生"
}
//第3名
{
"name": "张萌萌",
"classname": "软件工程3班",
"gender": "女生"
}
天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以"快乐工作,认真生活,打造高端职业技能教育的一面旗帜"为愿景,胸怀"让天下没有难找的工作"使命,
坚持"客户第一、诚信、激情、拥抱变化"的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。
更多学习讨论, 请加入
官方-天亮大数据交流-366784928
群二维码:
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://bbs.myhope365.com/forum.php?mod=viewthread&tid=1422&extra=page%3D1
欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
天亮教育官方群318971238,
爬虫、nlp技术qq群320349384
hadoop & spark & hive技术群297585251,
教育培训官网:http://myhope365.com
项目研发官网:http://shangyuninfo.com/
官方天亮论坛:http://bbs.myhope365.com/