Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
myguguang
elasticsearch-analysis-ik
提交
36ab8b91
E
elasticsearch-analysis-ik
项目概览
myguguang
/
elasticsearch-analysis-ik
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
elasticsearch-analysis-ik
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
36ab8b91
编写于
8月 06, 2015
作者:
D
David Yun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Restructure README.md
上级
497dfd95
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
263 addition
and
253 deletion
+263
-253
README.md
README.md
+263
-253
未找到文件。
README.md
浏览文件 @
36ab8b91
IK Analysis for ElasticSearch
==================================
更新说明:
对于使用es集群,用ik作为分词插件,经常会修改自定义词典,增加远程加载,每次更新都会重新加载词典,不必重启es服务。
=============================
The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary.
Tokenizer:
`ik`
Version
-------------
master | 1.5.0 -> master
1.
4.0 | 1.6.0
1.
3.0 | 1.5.0
1.
2.9 | 1.4.0
1.
2.8 | 1.3.2
1.
2.7 | 1.2.1
1.
2.6 | 1.0.0
1.
2.5 | 0.90.2
1.
2.3 | 0.90.2
1.
2.0 | 0.90.0
1.
1.3 | 0.20.2
1.
1.2 | 0.19.x
1.
0.0 | 0.16.2 -> 0.19.0
Thanks
-------------
YourKit supports IK Analysis for ElasticSearch project with its full-featured Java Profiler.
YourKit, LLC is the creator of innovative and intelligent tools for profiling
Java and .NET applications. Take a look at YourKit's leading software products:
<a
href=
"http://www.yourkit.com/java/profiler/index.jsp"
>
YourKit Java Profiler
</a>
and
<a
href=
"http://www.yourkit.com/.net/profiler/index.jsp"
>
YourKit .NET Profiler
</a>
.
更新:对于使用 ES 集群,用 IK 作为分词插件,经常会修改自定义词典的使用者,可以透过远程加载的方式,每次更新都会重新加载词典,不必重启 ES 服务。
Versions
--------
IK version | ES version
-----------|-----------
master | 1.5.0 -> master
1.
4.0 | 1.6.0
1.
3.0 | 1.5.0
1.
2.9 | 1.4.0
1.
2.8 | 1.3.2
1.
2.7 | 1.2.1
1.
2.6 | 1.0.0
1.
2.5 | 0.90.2
1.
2.3 | 0.90.2
1.
2.0 | 0.90.0
1.
1.3 | 0.20.2
1.
1.2 | 0.19.x
1.
0.0 | 0.16.2 -> 0.19.0
Install
-------------
-------
you can download this plugin from RTF project(https://github.com/medcl/elasticsearch-rtf)
https://github.com/medcl/elasticsearch-rtf/tree/master/plugins/analysis-ik
https://github.com/medcl/elasticsearch-rtf/tree/master/config/ik
...
...
@@ -42,33 +37,14 @@ https://github.com/medcl/elasticsearch-rtf/tree/master/config/ik
you need a service restart after that!
Dict Configuration (es-root/config/ik/IKAnalyzer.cfg.xml)
Configuration
-------------
https://github.com/medcl/elasticsearch-analysis-ik/blob/master/config/ik/IKAnalyzer.cfg.xml
### Analysis Configuration
<pre>
#### `elasticsearch.yml`
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>
IK Analyzer 扩展配置
</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry
key=
"ext_dict"
>
custom/mydict.dic;custom/single_word_low_freq.dic
</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry
key=
"ext_stopwords"
>
custom/ext_stopword.dic
</entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry
key=
"remote_ext_dict"
>
location
</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<entry
key=
"remote_ext_stopwords"
>
location
</entry>
</properties>
</pre>
Analysis Configuration (elasticsearch.yml)
-------------
<pre>
```
yaml
index
:
analysis
:
analyzer
:
...
...
@@ -81,30 +57,29 @@ index:
ik_smart
:
type
:
ik
use_smart
:
true
</pre>
```
Or
<pre>
```
yaml
index.analysis.analyzer.ik.type
:
"
ik"
</pre>
```
you can set your prefer segment mode,default
`use_smart`
is false.
Mapping Configuration
-------------
### Mapping Configuration
Here is a quick example:
1.
create a index
#### Quick Example
<pre>
1.
create a index
```
bash
curl
-XPUT
http://localhost:9200/index
```
</pre>
2.
create a mapping
<pre>
2.
create a mapping
```
bash
curl
-XPOST
http://localhost:9200/index/fulltext/_mapping
-d
'
{
"fulltext": {
...
...
@@ -127,33 +102,37 @@ curl -XPOST http://localhost:9200/index/fulltext/_mapping -d'
}
}
}'
</pre>
3.
index some docs
```
<pre>
3.
index some docs
```
bash
curl
-XPOST
http://localhost:9200/index/fulltext/1
-d
'
{"content":"美国留给伊拉克的是个烂摊子吗"}
'
```
```
bash
curl
-XPOST
http://localhost:9200/index/fulltext/2
-d
'
{"content":"公安部:各地校车将享最高路权"}
'
```
```
bash
curl
-XPOST
http://localhost:9200/index/fulltext/3
-d
'
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
'
```
```
bash
curl
-XPOST
http://localhost:9200/index/fulltext/4
-d
'
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
'
</pre>
4.
query with highlighting
```
<pre>
4.
query with highlighting
```
bash
curl
-XPOST
http://localhost:9200/index/fulltext/_search
-d
'
{
"query" : { "term" : { "content" : "中国" }},
...
...
@@ -166,12 +145,11 @@ curl -XPOST http://localhost:9200/index/fulltext/_search -d'
}
}
'
</pre>
```
here is the query result
<pre>
#### Result
```
json
{
"took"
:
14
,
"timed_out"
:
false
,
...
...
@@ -215,39 +193,71 @@ here is the query result
]
}
}
```
</pre>
### Dictionary Configuration
have fun.
#### `config/ik/IKAnalyzer.cfg.xml`
热更新IK分词使用方法
----------
目前该插件支持热更新 ik 分词,通过上文在 ik 配置文件中提到的如下配置
```
xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>
IK Analyzer 扩展配置
</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry
key=
"ext_dict"
>
custom/mydict.dic;custom/single_word_low_freq.dic
</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry
key=
"ext_stopwords"
>
custom/ext_stopword.dic
</entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry
key=
"remote_ext_dict"
>
location
</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<entry
key=
"remote_ext_stopwords"
>
location
</entry>
</properties>
```
### 热更新 IK 分词使用方法
<pre>
目前该插件支持热更新 IK 分词,通过上文在 IK 配置文件中提到的如下配置
```
xml
<!--用户可以在这里配置远程扩展字典 -->
<entry
key=
"remote_ext_dict"
>
location
</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<entry
key=
"remote_ext_stopwords"
>
location
</entry>
</pre>
```
其中
`location`
是指一个 url,比如
`http://yoursite.com/getCustomDict`
,该请求只需满足
一下两点即可完成分词热更新。
其中
`location`
是指一个 url,比如
`http://yoursite.com/getCustomDict`
,该请求只需满足
以下两点即可完成分词热更新。
1.
该 http 请求需要返回两个头部
,一个是
`Last-Modified`
,一个是
`ETags`
,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。
1.
该 http 请求需要返回两个头部
(header),一个是
`Last-Modified`
,一个是
`ETags`
,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。
2.
该 http 请求返回的内容格式是一行一个分词,换行符用
`\n`
即可。
满足上面两点要求就可以实现热更新分词了,不需要重启 es 实例。
满足上面两点要求就可以实现热更新分词了,不需要重启 ES 实例。
have fun.
常见问题
-------
常见问题:
-------------
1.
自定义词典为什么没有生效?
请确保你的扩展词典的文本格式为 UTF8 编码
2.
如何手动安装,以 1.3.0 為例?(参考:https://github.com/medcl/elasticsearch-analysis-ik/issues/46)
`git clone https://github.com/medcl/elasticsearch-analysis-ik`
`cd elasticsearch-analysis-ik`
`mvn compile`
`mvn package`
`plugin --install analysis-ik --url file:///#{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-1.3.0.zip`
```
bash
git clone https://github.com/medcl/elasticsearch-analysis-ik
cd
elasticsearch-analysis-ik
mvn compile
mvn package
plugin
--install
analysis-ik
--url
file:///#
{
project_path
}
/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-1.3.0.zip
```
Thanks
------
YourKit supports IK Analysis for ElasticSearch project with its full-featured Java Profiler.
YourKit, LLC is the creator of innovative and intelligent tools for profiling
Java and .NET applications. Take a look at YourKit's leading software products:
<a
href=
"http://www.yourkit.com/java/profiler/index.jsp"
>
YourKit Java Profiler
</a>
and
<a
href=
"http://www.yourkit.com/.net/profiler/index.jsp"
>
YourKit .NET Profiler
</a>
.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录