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中文分词集成相关推荐

  1. 怎么配置linux中es搜索的主机名,分布式搜索elasticsearch中文分词集成

    elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介 ...

  2. 基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一)

    基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一) ##1.sphinx简介 1.什么是sphinx Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检 ...

  3. 黑马程序员--分布式搜索ElasticSearch学习笔记

    写在最前 黑马视频地址:https://www.bilibili.com/video/BV1LQ4y127n4/ 想获得最佳的阅读体验,请移步至我的个人博客 SpringCloud学习笔记 消息队列M ...

  4. php elasticsearch ik,elasticsearch 中文分词(elasticsearch-analysis-ik)安装

    elasticsearch 中文分词(elasticsearch-analysis-ik)安装 在elasticsearch的plugins目录下,创建ik目录 cd /usr/local/elast ...

  5. 分布式搜索elasticsearch搜索功能【深入】

    elasticsearch搜索功能[深入] 分布式搜索elasticsearch搜索功能[深入] 1.数据聚合 1.1 聚合的种类 1.2 DSL实现聚合 1.2.1 Bucket聚合 1.2.2 M ...

  6. 分布式搜索elasticsearch搜索功能【进阶】

    elasticsearch搜索功能 分布式搜索elasticsearch搜索功能 1.DSL查询文档 1.1 DSL查询分类 1.2 全文检索查询 1.3 精准查询 1.4 地理坐标查询 1.5 组合 ...

  7. 分布式搜索 Elasticsearch —— 节点实例化

    为什么80%的码农都做不了架构师?>>>    要连接到集群,首先要告诉集群:你是谁,你有什么特征.在 ES 中体现为实例化节点. ES 通过 org.elasticsearch.n ...

  8. 分布式搜索elasticsearch 索引文档的增删改查 入门

    分布式搜索elasticsearch 索引文档的增删改查 入门 1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful ...

  9. lucene的建立索引,搜索,中文分词

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包. 现在最新的lucene已经更新到6.0版本了.但是这个最新版,需要适配jdk1.80以 ...

最新文章

  1. DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子
  2. 做了个小界面,mark一下
  3. 农大计算机学院姜新华,计算机学院红帽学院揭牌仪式
  4. 在CISCO交换机上配置SSH
  5. Python零碎知识(1):strip lstrip rstrip使用方法
  6. 使用ALTER SYSTEM运行OS命令
  7. sql2008 查询某个表被那些存储过程用到
  8. 新发现判断一个点在多边形的最高效率算法 推荐******
  9. NameError: name 'url' is not defined django
  10. MiniApp微信小程序入口在安卓手机桌面
  11. python 动态语言 优美_Python动态语言之魅力大揭秘
  12. linux 开山(尚硅谷)--听课笔记-
  13. linux ftp切换目录命令,linux FTP命令详解
  14. 群晖 VMM虚拟机安装openwrt软路由做单臂旁路由
  15. python数据挖掘(2.分类 OneR算法)
  16. 用指针写出strcmp函数
  17. 韩语学习之——韩语基础入门第二课基本辅音
  18. 社交电商如何运营推广?
  19. 详细Http状态查询返回 HTTP 状态代码以响应请求
  20. 大数据起步之wormhole初识

热门文章

  1. undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复
  2. mac多开屏幕_不折腾不舒服 篇一:2K显示器不得不说的尴尬及解决方案,聊聊MacOS开启HiDPI...
  3. iOS性能优化系列篇之“列表流畅度优化”工具篇
  4. ABA问题及解决办法
  5. ios 裁剪框大小_ios 裁剪框大小_PS裁剪工具的使用,简单明了,学会了不求人,再也不用上百度查了......
  6. Docker卸载jenkins
  7. [c++] LPWSTR、LPCSTR、LPCWSTR浅析
  8. 育碧:《猎杀潜航5》盗版破解补丁并非完美破解
  9. 使用vbscript.regexp实现VBA代码格式化
  10. 文件批量重命名去掉前缀