elasticsearch2.x ik插件
先来一个标准分词(standard),配置如下:
curl -XPUT localhost:/local -d '{ "settings" : { "analysis" : { "analyzer" : { "stem" : { "tokenizer" : "standard", "filter" : ["standard", "lowercase", "stop", "porter_stem"] } } } }, "mappings" : { "article" : { "dynamic" : true, "properties" : { "title" : { "type" : "string", "analyzer" : "stem" } } } } }'
index:local
type:article
default analyzer:stem (filter:小写、停用词等)
field:title
测试:
# Index Data curl -XPUT localhost:/local/article/ -d'{"title": "Fight for your life"}' curl -XPUT localhost:/local/article/ -d'{"title": "Fighting for your life"}' curl -XPUT localhost:/local/article/ -d'{"title": "My dad fought a dog"}' curl -XPUT localhost:/local/article/ -d'{"title": "Bruno fights Tyson tomorrow"}' # search on the title field, which is stemmed on index and search curl -XGET localhost:/local/_search?q=title:fight # searching on _all will not do anystemming, unless also configured on the mapping to be stemmed... curl -XGET localhost:/local/_search?q=fight
例如:
Fight for your life
分词如下:
{"tokens":[ {"token":"fight","start_offset":,"end_offset":,"type":"<ALPHANUM>","position":},<br>{"token":"your","start_offset":,"end_offset":,"type":"<ALPHANUM>","position":},<br>{"token":"life","start_offset":,"end_offset":,"type":"<ALPHANUM>","position":} ]}
部署ik分词器
在elasticsearch.yml中配置 index.analysis.analyzer.ik.type : "ik"
delete之前创建的index,重新配置如下:
curl -XPUT localhost:/local -d '{ "settings" : { "analysis" : { "analyzer" : { "ik" : { "tokenizer" : "ik" } } } }, "mappings" : { "article" : { "dynamic" : true, "properties" : { "title" : { "type" : "string", "analyzer" : "ik" } } } } }'
测试:
curl 'http://localhost:9200/local/_analyze?analyzer=ik&pretty=true' -d' { "text":"中华人民共和国国歌" } ' { "tokens" : [ { "token" : "text", "start_offset" : , "end_offset" : , "type" : "ENGLISH", "position" : }, { "token" : "中华人民共和国", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "国歌", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : } ] }
如果我们想返回最细粒度的分词结果,需要在elasticsearch.yml中配置如下:
index: analysis: analyzer: ik: alias: [ik_analyzer] type: org.elasticsearch.index.analysis.IkAnalyzerProvider ik_smart: type: ik use_smart: true ik_max_word: type: ik use_smart: false
测试:
curl 'http://localhost:9200/index/_analyze?analyzer=ik_max_word&pretty=true' -d' { "text":"中华人民共和国国歌" } ' { "tokens" : [ { "token" : "text", "start_offset" : , "end_offset" : , "type" : "ENGLISH", "position" : }, { "token" : "中华人民共和国", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "中华人民", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "中华", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "华人", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "人民共和国", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "人民", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "共和国", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "共和", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : }, { "token" : "国", "start_offset" : , "end_offset" : , "type" : "CN_CHAR", "position" : }, { "token" : "国歌", "start_offset" : , "end_offset" : , "type" : "CN_WORD", "position" : } ] }
elasticsearch2.x ik插件的更多相关文章
- ElasticSearch搜索引擎安装配置中文分词器IK插件
近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...
- elasticsearch 口水篇(8)分词 中文分词 ik插件
先来一个标准分词(standard),配置如下: curl -XPUT localhost:9200/local -d '{ "settings" : { "analys ...
- Elastic ik插件配置热更新功能
ik github地址:https://github.com/medcl/elasticsearch-analysis-ik 官网说明: 热更新 IK 分词使用方法 目前该插件支持热更新 IK 分词, ...
- 【自定义IK词典】Elasticsearch之中文分词器插件es-ik的自定义词库
Elasticsearch之中文分词器插件es-ik 针对一些特殊的词语在分词的时候也需要能够识别 有人会问,那么,例如: 如果我想根据自己的本家姓氏来查询,如zhouls,姓氏“周”. 如 ...
- Elasticsearch安装ik中文分词插件(四)
一.IK简介 IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本.最初,它是以开源项目Lu ...
- 在ElasticSearch中使用 IK 中文分词插件
我这里集成好了一个自带IK的版本,下载即用, https://github.com/xlb378917466/elasticsearch5.2.include_IK 添加了IK插件意味着你可以使用ik ...
- ElasticSearch(三) ElasticSearch中文分词插件IK的安装
正因为Elasticsearch 内置的分词器对中文不友好,会把中文分成单个字来进行全文检索,所以我们需要借助中文分词插件来解决这个问题. 一.安装maven管理工具 Elasticsearch 要使 ...
- ES之一:Elasticsearch6.4 windows安装 head插件ik分词插件安装
准备安装目标:1.Elasticsearch6.42.head插件3.ik分词插件 第一步:安装Elasticsearch6.4 下载方式:1.官网下载 https://www.elastic.co/ ...
- Elastic Stack 笔记(二)Elasticsearch5.6 安装 IK 分词器和 Head 插件
博客地址:http://www.moonxy.com 一.前言 Elasticsearch 作为开源搜索引擎服务器,其核心功能在于索引和搜索数据.索引是把文档写入 Elasticsearch 的过程, ...
随机推荐
- 批处理BAT(一)
批处理 全盘根目录下查找文件夹并删除(1)@echo offfor %%a in (C D E F G H) DO (cd\if exist "%%a:\123\" rd /s / ...
- OUTlook无法预览xls文件
outlook可以正常预览doc,pdf,jpg格式的附件,但是xls和xlsx格式就是不能预览.找了好多网络上的办法,都是不行,最终还是找一个靠谱的办法,记录一下 这个方法非常有用:如题, 本人安装 ...
- 17-THREE.JS 光晕滤镜
<!DOCTYPE html> <html> <head> <title></title> <script src="htt ...
- LINUX下SYN FLOOD攻击及LINUX下SYN攻防简述
LINUX下SYN攻防战如下 (一)SYN攻击原理 SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费服务器CPU和内存资源.SYN攻击聊了能影响主机外,还可以危害路 ...
- 【ORM】关于Dapper的一些常见用法
引言 Dapper是.Net平台下一款小巧玲珑的开源Orm框架,简单实用的同时保持高性能,非常适合我这种喜欢手写SQL的人使用,下面介绍一下如何使用Dapper. 相关资料 Dapper的GitHub ...
- 20181229模拟 T1 palindrome
20181229模拟 T1 palindrome 题意 : \(S\)是字符串\(s\)的子串可重集,求\(\sum\limits_{x\in S}\sum\limits_{y\in S}(|x|+| ...
- 【java规则引擎】简单规则的rete网络示意图
一个Fact通过Session添加到规则网络中,如何进行规则匹配的大致过程如下 (1)通过根结点对象从EntryPointNode的Map集合中找到相应的EntryPointNode对象 (2)Ent ...
- [转]NME Android目标中文输入问题完美解决!
最近研究了一下haxe,发现蛮牛逼的,转几篇知识帖 haXe开发笔记:中文问题的小结 * .hx源文件中如果包含中文,要保存成UTF-8编码才能够正确被haXe编译器解析,是否包含BOM(Byte O ...
- Process使用
最近在一个项目中,需要在C#中调用cmd窗口来执行一个命令,使用到了Process这个类,使用过程中遇到不少问题,好在终于解决了.赶紧记录下来. Process process = new Proce ...
- C# 多线程参数传递
之前使用多线程的时候,基本没有遇到过参数传递的情况,最近,接连遇到需要进行参数传递的多线程的使用.每次都要重新上网查一下,太麻烦了.为了方便以后的使用,就把经常参阅的网上资料记录下来. 原文地址如下: ...