# 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 - 有更新时,服务商将要添加的新词以英文逗号分隔组成字符串输出,如:"南工院,蓝鲸" 如果是需要删除的词,在词头加"!", 如删除"蓝鲸",则为"南工院,!蓝鲸".