Lucene分词报错:”TokenStream contract violation: close() call missing”
Lucene使用IKAnalyzer分词时报错:”TokenStream contract violation: close() call missing” 解决办法是每次完成后必须调用关闭方法。
如果报错:java.lang.illegalstateexception: tokenstream contract violation: reset()/close() call missing,则要在tokenStream.incrementToken(),原因是lucene从4.6.0开始tokenstream使用方法更改的问题,在使用incrementtoken方法前必须调用reset方法,详见api http://lucene.apache.org/core/4_6_0/core/index.html 。
以下正确示例代码(第10行和22行调用reset()和close()方法):
public Set<String> slicing(String text){Set<String> result = new HashSet<>();StringReader reader = null;TokenStream tokenStream = null;try {reader = new StringReader(text);tokenStream = analyzer.tokenStream("", reader); CharTermAttribute charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class); OffsetAttribute offsetAttribute = tokenStream.addAttribute(OffsetAttribute.class); tokenStream.reset();while (tokenStream.incrementToken()) { int startOffset = offsetAttribute.startOffset(); int endOffset = offsetAttribute.endOffset();if((endOffset - startOffset) > 1){String term = charTermAttribute.toString(); result.add(term);}} } catch (IOException e) {e.printStackTrace();} finally{IOs.close(tokenStream, reader);}return result; }
http://www.lizi.pw/archives/56
org.wltea.analyzer.lucene.IKAnalyzer
Exception in thread "main" java.lang.IllegalStateException: 词典尚未初始化,请先调用initial方法 at org.wltea.analyzer.dic.Dictionary.getSingleton(Dictionary.java:137) at org.wltea.analyzer.core.CJKSegmenter.analyze(CJKSegmenter.java:80) at org.wltea.analyzer.core.IKSegmenter.next(IKSegmenter.java:116) at org.wltea.analyzer.lucene.IKTokenizer.incrementToken(IKTokenizer.java:88)
转载于:https://www.cnblogs.com/softidea/p/6084043.html
Lucene分词报错:”TokenStream contract violation: close() call missing”相关推荐
- Lucene 4.6.1 java.lang.IllegalStateException: TokenStream contract violation
这是旧代码在新版本Lucene中出现的异常,异常如下: Exception in thread "main" java.lang.IllegalStateException: To ...
- IKAnalyzer2012FF + Lucene4.9 TokenStream contract violation: reset()/close() call missing
异常信息如下: java.lang.IllegalStateException: TokenStream contract violation: reset()/close() call missin ...
- 区块链报错 5 | Contract has not been deployed to detect network (network/artifact mismatch)
初学记录 · 欢迎交流 区块链DApp从零开始学 (一) | DApp抓包 区块链DApp从零开始学 (二) | 超详细 DApp创建 | 发行代币token |宠物领养 区块链知识 (一) | 实例 ...
- react报错 Uncaught Invariant Violation: Unable to find node on an unmounted compone
react报错 Uncaught Invariant Violation: Unable to find node on an unmounted compone 在采用ant.design的Tabl ...
- 关于加入@RequestBody后请求报错:Required request body is missing:
关于加入@RequestBody后请求报错: Required request body is missing: 这个错误是由于Controller中加入了@RequestBody后却收不到指定请求体 ...
- 使用opengl glGetIntegerv报错 :Access violation executing location0x0000000000000000
使用opengl glGetIntegerv报错 : Exception thrown at 0x0000000000000000 in OpenGLBaseCode1.exe: 0xC0000005 ...
- vue run dev报错 缺少package.json文件、missing dev 命令 解决办法
新建好一个vue项目后,终端执行npm run dev 报了两个错 1.缺少package.json文件 解决办法:执行 npm init -y 生成一个新的package.json 2.missin ...
- 微信公众号开发,报错{errcode:41005,errmsg:media data missing hint:}的解决办法---亲测有效
在微信开发中,遇到报错:errcode":41005,"errmsg":"media data missing hint 具体解决办法如下地址,实测有效: 对应 ...
- vue启动报错!Module build failed: Error: Missing binding D:\WorkSpace\vue\OfficeSuite\OfficeFrontend\node
报错信息如下: This usually happens because your environment has changed since running `npm install`. Run ` ...
最新文章
- 卢松松:如何复制暴利产品
- Linux 基础知识(九)
- EJB3 学习笔记六
- mysql根据经纬度查询范围内数据,并根据距离排序
- 爬取人民日报_【爬虫系列】人民日报半个世纪的资料(文末福利)
- java获取光标位置_javastscript获取光标位置
- redis缓存队列+MySQL +php任务脚本定时批量入库
- 用matlab设计模糊控制器
- matlab二重定积分_怎么用matlab计算这个二重积分如何用matlab求二重积分
- xyz坐标转换ybc_GNSS仰角和方位角的计算及代码,XYZ转BLH坐标的代码及原理
- ACL2019之对话系统
- 【手把手】ElasticSearch的搜索推荐相关
- 作为一个程序员,如何保持优秀
- mysql 字段被截断_msyql存储数据时字段被截断
- 基于聚类算法的图像分割技术
- 大数据基础之Spark——Spark pregel详细过程,一看就懂
- TADF材料的机制原理;TADF的机理;热活化延迟荧光如何产生?
- Android推特图片保存路径,如何将twitter的URL内容(tweet,user,comment,…)添加到我的android应用程序...
- 将base64转换为图片
- 恩智浦率先推出超宽带Doherty放大器
热门文章
- ipfs-缓存/Pinning(文件持久存储、垃圾收集机制)
- 麦克风android权限管理,android权限处理详解
- 四川三星堆遗址,是历史上哪个朝代?
- 317 离建筑物最近的距离
- php mysql cpu使用率_PHP / MySQL:虽然CPU使用率始终低于40%,但12个CPU内核能否使应用程序比6个CPU内核更快?...
- java正则表达式替换特殊字符_使用正则表达式替换报表名称中的特殊字符(推荐)...
- 03 常用统计模型简述
- 【Linux】Linux系统如何修改/设置服务器ip地址
- 分词算法----正向和逆向最大匹配算法(含Python代码实现)
- C++可变参数模板显式特例化