布式搜索elasticsearch 中文分词集成
2016-03-10 16:05
531 查看
对于索引可能最关系的就是分词了 一般对于es 来说默认的smartcn 但效果不是很好
一个是ik的,一个是mmseg的,下面分别介绍下两者的用法,其实都差不多的,先安装插件,命令行:
下载ik相关配置词典文件到config目录
cd config
wget http://github.com/downloads/medcl/elasticsearch-analysis-ik/ik.zip --no-check-certificate
unzip ik.zip
rm ik.zip
分词配置
ik分词配置,在elasticsearch.yml文件中加上
?
或
?
下载相关配置词典文件到config目录
cd config
wget http://github.com/downloads/medcl/elasticsearch-analysis-mmseg/mmseg.zip --no-check-certificate
unzip mmseg.zip
rm mmseg.zip
mmseg分词配置,也是在在elasticsearch.yml文件中
?
或
?
mmseg分词还有些更加个性化的参数设置如下
?
这样配置完后插件安装完成,启动es就会加载插件。
定义mapping
在添加索引的mapping时就可以这样定义分词器
?
indexAnalyzer为索引时使用的分词器,searchAnalyzer为搜索时使用的分词器。
java mapping代码如下:
?
测试分词可用调用下面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
/article/3491388.html
一个是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
分词配置
ik分词配置,在elasticsearch.yml文件中加上
?
1 2 3 4 5 6 | index: analysis: analyzer: ik: alias: [ik_analyzer] type: org.elasticsearch.index.analysis.IkAnalyzerProvider |
?
1 | index.analysis.analyzer.ik.type : “ik” |
安装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
mmseg分词配置,也是在在elasticsearch.yml文件中
?
1 2 3 4 5 6 | index: analysis: analyzer: mmseg: alias: [news_analyzer, mmseg_analyzer] type: org.elasticsearch.index.analysis.MMsegAnalyzerProvider |
?
1 | index.analysis.analyzer.default.type : "mmseg" |
?
1 2 3 4 5 6 7 8 9 10 11 12 | index: analysis: tokenizer: mmseg_maxword: type: mmseg seg_type: "max_word" mmseg_complex: type: mmseg seg_type: "complex" mmseg_simple: type: mmseg seg_type: "simple" |
定义mapping
在添加索引的mapping时就可以这样定义分词器
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { "page":{ "properties":{ "title":{ "type":"string", "indexAnalyzer":"ik", "searchAnalyzer":"ik" }, "content":{ "type":"string", "indexAnalyzer":"ik", "searchAnalyzer":"ik" } } } } |
java mapping代码如下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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
/article/3491388.html
相关文章推荐
- Spring Bean 初始化过程
- Maven导出工程依赖的jar包
- jactor
- java 线程池详解
- 协同过滤推荐算法在MapReduce与Spark上实现对比
- lucene4.7 分词器(三)
- elasticsearch的实现全文检索
- 详解Java GC的工作原理
- storm - 常用命令
- linux统计文件中关键字出现的行号
- 加锁方法对于Map
- Maven下使用Jetty进行Debug
- java file 海量文件处理
- 滑动窗口 TOPN 技术实现演变
- 部署与管理ZooKeeper
- JSONP跨域的原理解析
- JPPF helloword
- com.bea.xml.XmlException: failed to load java type corresponding to e=web-app@ht
- HttpClient4.3教程 第二章 连接管理
- elasticsearch的一些基本概念