基于 Ansj 的 elasticsearch 2.3.1 中文分词插件
前言
这是一个elasticsearch的中文分词插件,基于Ansj中文分词。发起者Onni大神。
2.3.1插件安装
进入Elasticsearch目录运行如下命令
进入es目录执行如下命令
./bin/plugin install http://maven.nlpcn.org/org/ansj/elasticsearch-analysis-ansj/2.3.1/elasticsearch-analysis-ansj-2.3.1-release.zip
更新内容
elasticsearch更新2.3.1
ansj_seg升级至3.7.3
elasticsearch更新2.1.1
ansj_seg升级至3.5
新增http的_ansj接口,用于查看ansj分词词性
新增http的_cat/ansj接口,作用同上,显示为cat方式
新增http的_cat/[index]/analyze接口,和_analyze作用一样,显示为cat方式
更方便的配置
测试
创建测试索引
curl -XPUT 127.0.0.1:9200/test -d '{ "settings" : { "number_of_shards" : 1, "number_of_replicas" : 0 }, "mappings" : { "type1" : { "_all" : { "enabled" : false }, "properties" : { "name" : { "type" : "string", "analyzer" : "index_ansj", "search_analyzer" : "query_ansj" } } } } }'
添加索引内容
curl -XPUT 'http://127.0.0.1:9200/test/test/1' -d '{ "name" : "中国人民万岁", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }'
查询索引
浏览器访问:
http://127.0.0.1:9200/test/test/_search?q=name:%E4%B8%AD%E5%9B%BD
如果你想把ansj作为你的默认分词需要在elasticsearch.yml加入如下配置:
#默认分词器,索引 index.analysis.analyzer.default.type: index_ansj #默认分词器,查询 index.analysis.analyzer.default_search.type: query_ansj
关于分词器不得不说的那点小事
目前默认内置三个分词器
当然如果你有心仔细观察日志看到了实例化了n多分词器如下
regedit analyzer named : index_ansj regedit analyzer named : query_ansj regedit analyzer named : to_ansj regedit analyzer named : dic_ansj regedit analyzer named : user_ansj regedit analyzer named : search_ansj why????
额 只有三个其他都是别名
索引分词
index_ansj 是索引分词,尽可能分词处所有结果 example
http://127.0.0.1:9200/_cat/test/analyze?text=%E5%85%AD%E5%91%B3%E5%9C%B0%E9%BB%84%E4%B8%B8%E8%BD%AF%E8%83%B6%E5%9B%8A&analyzer=index_ansj 六味 0 2 0 word 地 2 3 1 word 黄丸软 3 6 2 word 胶囊 6 8 3 word 六味地黄 0 4 4 word 地黄 2 4 5 word 地黄丸 2 5 6 word 软胶 5 7 7 word 软胶囊 5 8 8 word 搜索分词 (search_ansj=to_ansj=query_ansj)
query_ansj 是搜索分词,是索引分词的子集,保证了准确率 example
http://127.0.0.1:9200/_cat/test/analyze?text=%E5%85%AD%E5%91%B3%E5%9C%B0%E9%BB%84%E4%B8%B8%E8%BD%AF%E8%83%B6%E5%9B%8A&analyzer=query_ansj 六味 0 2 0 word 地 2 3 1 word 黄丸软 3 6 2 word 胶囊 6 8 3 word
用户自定义词典优先的分词方式 (user_ansj=dic_ansj)
dic_ansj 是用户自定义词典优先策略
http://127.0.0.1:9200/_cat/test/analyze?text=%E5%85%AD%E5%91%B3%E5%9C%B0%E9%BB%84%E4%B8%B8%E8%BD%AF%E8%83%B6%E5%9B%8A&analyzer=dic_ansj 六味地黄 0 4 0 word 丸 4 5 1 word 软胶囊 5 8 2 word
====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
机器学习和深度学习的最佳框架大比拼
在过去的一年里,咱们讨论了六个开源机器学习和/或深度学习框架:Caffe,Microsoft Cognitive Toolkit(又名CNTK 2),MXNet,Scikit-learn,Spark MLlib和TensorFlow。如果把网撒得大些,可能还会覆盖其他几个流行的框架,包括Theano(一个10年之久的Python深度学习和机器学习框架),Keras(一个Theano和TensorFlow深度学习的前端),DeepLearning4j(Java和Scala在Hadoop和Spark之上的深度学习软件)。如果你有兴趣使用机器学习和神经网络,你从来没有像现在这样多的选择。 机器学习框架和深度学习框架之间有区别。本质上,机器学习框架涵盖用于分类,回归,聚类,异常检测和数据准备的各种学习方法,并且其可以或可以不包括神经网络方法。深度学习或深度神经网络(DNN)框架涵盖具有许多隐藏层的各种神经网络拓扑。这些层包括模式识别的多步骤过程。网络中的层越多,可以提取用于聚类和分类的特征越复杂。 Caffe,CNTK,DeepLearning4j,Keras,MXNet和TensorFlow...
- 下一篇
[Hadoop]Hadoop本地调试
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/72912058 1. Maven依赖 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> 2. 调试设置 本地调试需要设置两点: conf.set("fs.default.name", "file:///"); conf.set("ma...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS关闭SELinux安全模块
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7设置SWAP分区,小内存服务器的救世主
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启