分布式搜索elasticsearch中文分词集成
elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介绍下两者的用法,其实都差不多的,先安装插件,命令行:
安装ik插件:
plugin -install medcl/elasticsearch-analysis-ik/1.1.0
下载ik相关配置词典文件到config目录
cd config
wget http://github.com/downloads/medcl/elasticsearch-analysis-ik/ik.zip --no-check-certificate
unzip ik.zip
rm ik.zip
安装mmseg插件:
bin/plugin -install medcl/elasticsearch-analysis-mmseg/1.1.0
下载相关配置词典文件到config目录
cd config
wget http://github.com/downloads/medcl/elasticsearch-analysis-mmseg/mmseg.zip --no-check-certificate
unzip mmseg.zip
rm mmseg.zip
分词配置
ik分词配置,在elasticsearch.yml文件中加上
index:analysis: analyzer: ik:alias: [ik_analyzer]type: org.elasticsearch.index.analysis.IkAnalyzerProvider
或
index.analysis.analyzer.ik.type : “ik”
这两句的意义相同
mmseg分词配置,也是在在elasticsearch.yml文件中
index:analysis:analyzer:mmseg:alias: [news_analyzer, mmseg_analyzer]type: org.elasticsearch.index.analysis.MMsegAnalyzerProvider
或
index.analysis.analyzer.default.type : "mmseg"
mmseg分词还有些更加个性化的参数设置如下
index:analysis:tokenizer:mmseg_maxword:type: mmsegseg_type: "max_word"mmseg_complex:type: mmsegseg_type: "complex"mmseg_simple:type: mmsegseg_type: "simple"
这样配置完后插件安装完成,启动es就会加载插件。
定义mapping
在添加索引的mapping时就可以这样定义分词器
{"page":{"properties":{"title":{"type":"string","indexAnalyzer":"ik","searchAnalyzer":"ik"},"content":{"type":"string","indexAnalyzer":"ik","searchAnalyzer":"ik"}}}
}
indexAnalyzer为索引时使用的分词器,searchAnalyzer为搜索时使用的分词器。
java mapping代码如下:
XContentBuilder content = XContentFactory.jsonBuilder().startObject().startObject("page").startObject("properties") .startObject("title").field("type", "string") .field("indexAnalyzer", "ik").field("searchAnalyzer", "ik").endObject() .startObject("code").field("type", "string") .field("indexAnalyzer", "ik").field("searchAnalyzer", "ik").endObject() .endObject().endObject().endObject()
定义完后操作索引就会以指定的分词器来进行分词。
测试分词可用调用下面api,注意indexname为索引名,随便指定一个索引就行了
http://localhost:9200/indexname/_analyze?analyzer=ik&text=测试elasticsearch分词器
附:
ik分词插件项目地址:https://github.com/medcl/elasticsearch-analysis-ik
mmseg分词插件项目地址:https://github.com/medcl/elasticsearch-analysis-mmseg
如果觉得配置麻烦,也可以下载个配置好的es版本,地址如下:https://github.com/medcl/elasticsearch-rtf
本文地址:http://blog.csdn.net/laigood12345/article/details/7795115
参考资料:http://www.searchtech.pro/articles/2013/02/18/1361190717673.html
分布式搜索elasticsearch中文分词集成相关推荐
- 怎么配置linux中es搜索的主机名,分布式搜索elasticsearch中文分词集成
elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介 ...
- 基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一)
基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一) ##1.sphinx简介 1.什么是sphinx Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检 ...
- 黑马程序员--分布式搜索ElasticSearch学习笔记
写在最前 黑马视频地址:https://www.bilibili.com/video/BV1LQ4y127n4/ 想获得最佳的阅读体验,请移步至我的个人博客 SpringCloud学习笔记 消息队列M ...
- php elasticsearch ik,elasticsearch 中文分词(elasticsearch-analysis-ik)安装
elasticsearch 中文分词(elasticsearch-analysis-ik)安装 在elasticsearch的plugins目录下,创建ik目录 cd /usr/local/elast ...
- 分布式搜索elasticsearch搜索功能【深入】
elasticsearch搜索功能[深入] 分布式搜索elasticsearch搜索功能[深入] 1.数据聚合 1.1 聚合的种类 1.2 DSL实现聚合 1.2.1 Bucket聚合 1.2.2 M ...
- 分布式搜索elasticsearch搜索功能【进阶】
elasticsearch搜索功能 分布式搜索elasticsearch搜索功能 1.DSL查询文档 1.1 DSL查询分类 1.2 全文检索查询 1.3 精准查询 1.4 地理坐标查询 1.5 组合 ...
- 分布式搜索 Elasticsearch —— 节点实例化
为什么80%的码农都做不了架构师?>>> 要连接到集群,首先要告诉集群:你是谁,你有什么特征.在 ES 中体现为实例化节点. ES 通过 org.elasticsearch.n ...
- 分布式搜索elasticsearch 索引文档的增删改查 入门
分布式搜索elasticsearch 索引文档的增删改查 入门 1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful ...
- lucene的建立索引,搜索,中文分词
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包. 现在最新的lucene已经更新到6.0版本了.但是这个最新版,需要适配jdk1.80以 ...
最新文章
- DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子
- 做了个小界面,mark一下
- 农大计算机学院姜新华,计算机学院红帽学院揭牌仪式
- 在CISCO交换机上配置SSH
- Python零碎知识(1):strip lstrip rstrip使用方法
- 使用ALTER SYSTEM运行OS命令
- sql2008 查询某个表被那些存储过程用到
- 新发现判断一个点在多边形的最高效率算法 推荐******
- NameError: name 'url' is not defined django
- MiniApp微信小程序入口在安卓手机桌面
- python 动态语言 优美_Python动态语言之魅力大揭秘
- linux 开山(尚硅谷)--听课笔记-
- linux ftp切换目录命令,linux FTP命令详解
- 群晖 VMM虚拟机安装openwrt软路由做单臂旁路由
- python数据挖掘(2.分类 OneR算法)
- 用指针写出strcmp函数
- 韩语学习之——韩语基础入门第二课基本辅音
- 社交电商如何运营推广?
- 详细Http状态查询返回 HTTP 状态代码以响应请求
- 大数据起步之wormhole初识
热门文章
- undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复
- mac多开屏幕_不折腾不舒服 篇一:2K显示器不得不说的尴尬及解决方案,聊聊MacOS开启HiDPI...
- iOS性能优化系列篇之“列表流畅度优化”工具篇
- ABA问题及解决办法
- ios 裁剪框大小_ios 裁剪框大小_PS裁剪工具的使用,简单明了,学会了不求人,再也不用上百度查了......
- Docker卸载jenkins
- [c++] LPWSTR、LPCSTR、LPCWSTR浅析
- 育碧:《猎杀潜航5》盗版破解补丁并非完美破解
- 使用vbscript.regexp实现VBA代码格式化
- 文件批量重命名去掉前缀