# IK-Analyzer
**Repository Path**: vipdon/ik-analyzer
## Basic Information
- **Project Name**: IK-Analyzer
- **Description**: ik-analyzer maven结构 基于 lucene6.3, 远程调用更新词库
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2017-06-19
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#IK-Analyzer
在managed-schema里配置
```
```
1. minLength 默认为0, 该字段的作用是过滤,行为类似停词. 假如 "智能机" 分词为 智能|机 ,minLength=1 ,此时"机"为被过滤掉, 因为长度<=1了. minLength=2时,全被过滤了,因为两个词都<=2了
远程请求地址配置于IKAnalyzer.cfg.xml
```
IK Analyzer 扩展配置
ext.dic;
stopwords.txt;
60
http://localhost:8080/solr/ext.do
```
1. remote_ext_dict 远程扩展词库调用地址, 多个以;后分隔, 多个地址的意思是:默认取第一个,第一个请求失败或状态码返回200,304以外的码,则切换下一个地址重试.切换到最后一个地址失败后再切入第一个地址,如此循环
注意每个地址拥有独立的时间判断,程序会记录每个地址的最新更新时间.
2. remote_ext_stopwords 远程停词库
3. remote_period 频率,单位为秒
- 这里是列表文本根据 remotePeriod 设置的频率发起请求: http://localhost:8080/solr/ext
- 请求结果,需要服务端返回 "Last-Modified" 作为时间参考点.只需要精确到分钟. 如果不返回时间,ik将重新加载词库,包括主词,扩展词,停词,重新请求远程词库
- 第二次发起请求时, 会带着这个时间,并放在头部"If-Modified-Since". 服务端可根据该时间做判断决定是否取新词
- 如果没有更新,服务端可直接返回状态码304
- 有更新时,服务商将要添加的新词以英文逗号分隔组成字符串输出,如:"南工院,蓝鲸" 如果是需要删除的词,在词头加"!", 如删除"蓝鲸",则为"南工院,!蓝鲸".