IKAnalyzer3.2.0 Stable版使用自定义词典出现数组下标越界异常

使用环境:

Solr1.4

Lucene2.9.1 或 Lucene2.9.2 或 Lucene2.9.3

 

出错过程:

根据IKAnalyzer3.X官方手册,配置自定义词典,在启动时报错如下,把自定义词典移除,异常不再就不出现。

2010-7-22 9:51:15 org.apache.solr.common.SolrException log
严重: java.lang.ExceptionInInitializerError
        at org.wltea.analyzer.seg.ChineseSegmenter.<init>(ChineseSegmenter.java:37)
        at org.wltea.analyzer.cfg.Configuration.loadSegmenter(Configuration.java:114)
        at org.wltea.analyzer.IKSegmentation.<init>(IKSegmentation.java:54)
        at org.wltea.analyzer.lucene.IKTokenizer.<init>(IKTokenizer.java:44)
        at org.wltea.analyzer.solr.IKTokenizerFactory.create(IKTokenizerFactory.java:45)
        at org.apache.solr.analysis.TokenizerChain.getStream(TokenizerChain.java:69)
        at org.apache.solr.analysis.SolrAnalyzer.reusableTokenStream(SolrAnalyzer.java:74)
        at org.apache.solr.schema.IndexSchema$SolrIndexAnalyzer.reusableTokenStream(IndexSchema.java:364)
        at org.apache.lucene.queryParser.QueryParser.getFieldQuery(QueryParser.java:567)
        at org.apache.solr.search.SolrQueryParser.getFieldQuery(SolrQueryParser.java:153)
        at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1449)
        at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1337)
        at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1265)
        at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1254)
        at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:200)
        at org.apache.solr.search.LuceneQParser.parse(LuceneQParserPlugin.java:78)
        at org.apache.solr.search.QParser.getQuery(QParser.java:131)
        at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:89)
        at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:174)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
        at org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:52)
        at org.apache.solr.core.SolrCore$3.call(SolrCore.java:1146)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at org.wltea.analyzer.dic.DictSegment.fillSegment(DictSegment.java:139)
        at org.wltea.analyzer.dic.DictSegment.fillSegment(DictSegment.java:128)
        at org.wltea.analyzer.dic.Dictionary.loadMainDict(Dictionary.java:134)
        at org.wltea.analyzer.dic.Dictionary.<init>(Dictionary.java:71)
        at org.wltea.analyzer.dic.Dictionary.<clinit>(Dictionary.java:41)
        ... 28 more

 

从官网下载源代码,重新编译然后打包,替换原来的包,启动后异常不再出现。

 

==============================

2010.07.26

今天问题再次出现,用Lucene2.9.3替换Lucene2.9.1 或Lucene2.9.2后,问题暂时解决

 

Java开源分词系统IKAnalyzer学习(五) 词库加载源代码——DictSegmenty类 <br />/** * */ package org.wltea.analyzer.dic; import java.util.HashMap; import java.util.Map; /** * IK Analyzer v3.2 * 字典子片断 字典匹配核心类 * 该类采用 数组 结合 HashMap,实现词典存储,词语匹配 * * 当下属的页节点小等于3时,采用数组存储 * 当下属的页节点大于3时,采用HashMap存储 * @author 林良益 阅读详情

相关推荐

java IKAnalyzer 中文分词器

IK Analyzer 安装包 它的安装部署十分简单,将IKAnalyzer3.oGA.jar 部署于项目的lib目录中;

【ElasticSearch】新增文档时,IK空指针报错match(char[], int, int) is null

Index为: PUT /demo { "settings": { "number_of_shards" : 12, "number_of_replicas" : 1, "analysis":{ "analyzer":{ "ik":{ "tokenizer":"ik_max_word" } } } }, "mappings":{ "properties":{

极品小龙虾的博客 5176

使用IK Analyzer实现中文分词之Java实现

IK Analyzer 是一个开源的,基于 java 语言开发的轻量级的中文分词工具包。从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。 从 3.0 版本开始,IK 发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对 Lucene 的默认优化实现。 在 2012 版本中,IK 实现了简单的分词歧义排除算法,标志着 IK 分词器从单纯的词典分词向模拟语义分词衍化。

elasticsearch中ik_smart无法启动的问题

根据报错提示,检查ik分词器的资源文件,发现在ik的config目录中缺少stopword.dic。重新下载ik并且解压覆盖即可。

2301_81016208的博客 940

IKAnalyzer中文分词器V3.2.0

IKAnalyzer中文分词器V3.2.0,里边包含jar包,源码,词典和配置文件

Elasticsearch IK分词器扩展说明1

Elasticsearch IK分词器扩展说明1

在elasticsearch 的Java客户端使用IK分词器的问题解决

前提描述,关于如何在elasticsearch

坐忘峰 5460

手把手教你用STM32F429+FreeRTOS搭建开源SIP电话(附代码与避坑指南)

本文详细介绍了如何使用STM32F429和FreeRTOS搭建开源SIP电话系统,涵盖硬件选型、FreeRTOS任务划分、PJSIP协议栈移植、音频系统优化及安全实践。通过实战案例和代码示例,帮助开发者快速实现嵌入式VoIP通信,特别适合物联网和音视频通信领域的应用开发。

weixin_33582311的博客 356

IKAnalyzer 3.2.8 报错问题解决办法

为什么80%的码农都做不了架构师?>>> ...

weixin_34112030的博客 553

MinIO vs 华为云OBS:成本、性能与兼容性深度对比(含实测数据)

本文深度对比了开源对象存储MinIO与华为云OBS在成本、性能、兼容性及运维方面的核心差异。通过实测数据与全生命周期成本分析,为技术决策者提供选型依据。文章指出,MinIO在长期成本控制、性能深度优化及S3 API兼容性方面优势显著,而华为云OBS则提供开箱即用的便利性。

kmeans3miner的博客 593

CentOS7 编译升级GCC至9.3.0

1)下载GCC9.2.0源码并解压 从GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下: wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC...

haha123486的博客 1万+

谷粒商城实战笔记-175~177-商城业务-检索服务-检索查询接口开发

搜索页面搭建完成之后,点击搜索按钮,发送参数给后台服务,后台服务根据参数从Elasticsearch中查询符合条件的数据,返回给前端。

epitomizelu的专栏 1200

Elasticsearch连接中断:深入解析Connection reset by peer问题及优化策略

本文深入解析Elasticsearch连接中断问题,特别是Connection reset by peer错误的成因与解决方案。从TCP层的心跳机制到客户端与服务端的配置差异,详细介绍了网络不稳定、防火墙拦截等常见原因,并提供了六种优化策略,包括KeepAlive调整、TCP参数调优和智能重试机制等,帮助提升Elasticsearch连接的稳定性。

weixin_42546392的博客 410

项目缺少org.wltea.ik-analyzer,解决方法

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的 IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。 首先到https://github.com/wks/ik-analyzer下载源代码,使用git下载,具体地址是:https:

weixin_44393345的博客 6379

CANOCO5.0实现冗余分析(RDA)最详细步骤

在地理及生态领域会常使用RDA分析,RDA的实现路径也有很多,今天介绍一下CANOCO软件的实现方法。1.不同样点和环境因子之间夹角是锐角 是正相关,是钝角是负相关。2.夹角越大 说明相关性较小,夹角越小,相关性越大。得有不同的物种或者样点数值,再加上环境因子数据。3.箭头越长 相关性越大。时间调整到2010年。

Along6的博客 1万+

Open3D 机载点云电力线提取【2025最新版】

传统方法实现的机载点云电力线分割提取。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 4468

cannot invoke “org.wltea.analyzer.dic.DictSegment.match(char[],init,int)“ because “org.wltea.analyze

config目录下需要设置停用词。

weixin_43346403的博客 61

游戏大厂技术护城河——为什么你抄不了原神?

│ │ │ │ ↓ 通过 │ │ │ │。│ │ │ │ ↓ 成功 │ │ │ │。│ │ │ │ ↓ 完成 │ │ │ │。│ │ │ │ ↓ 达标 │ │ │ │。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 71

java分词框架_Java开源分词系统IKAnalyzer学习(五) 词库加载源代码——DictSegmenty类 | 学步园...

/****/package org.wltea.analyzer.dic;import java.util.HashMap;import java.util.Map;/*** IK Analyzer v3.2* 字典子片断 字典匹配核心类* 该类采用 数组 结合 HashMap,实现词典存储,词语匹配** 当下属的页节点小等于3时,采用数组存储* 当下属的页节点大于3时,采用HashMap存储* ...

weixin_35916663的博客 763

LPDDR6 技术标准详解(JESD209-6)

是继 LPDDR5/5X 之后的新一代低功耗 DRAM 标准,专为满足移动终端、AI、边缘计算等高带宽、低功耗场景而设计。该标准通过全新架构、动态功耗控制机制和增强型数据完整性机制,实现性能、能效与可靠性的全面升级。LPDDR6 并非仅是速度升级,更是内存架构设计思路的演进,围绕“低功耗 + 高带宽 + 强安全”的三维目标,构建下一代 SoC 平台关键基础。✅ 高带宽:支持 32B/64B 动态突发✅ 低功耗:动态电压、通道切换✅ 高可靠性:ECC + 自测试 + 安全区。

weixin_43199439的博客 2571

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

项目中缺少:org.wltea.analyzer.lucene.IKAnalyzer 的解决方式

今天在导入项目时报错,发现是缺少org.wltea.analyzer.lucene.IKAnalyzer这个包,上网查了资料,以下资源都是引用自github

weixin_44941636的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

springboot配置swagger报错:Cannot invoke “org.springframework...“和swagger网页报404问题

springboot配置swagger时报错,spring boot使用版本为2.7.16或3.1.5,JDK17,项目启动报错,项目使用swagger 3.0.

m0_74055560的博客 1293

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

es java 无法打开,windows 下 es安装ik后报错无法启动

1、没有安装分词器时可以正常启动2、在安装分词器后就报错了错误信息:Exception in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "D:\Program%20Files\elasticsearch-2.4.1\plugins\ik\config\IKA...

weixin_36018183的博客 512

IK分词器原理与原码分析

本文链接: http://quentinXXZ.iteye.com/blog/2180215 引言      做搜索技术的不可能不接触分词器。个人认为为什么搜索引擎无法被数据库所替代的原因主要有两点,一个是在数据量比较大的时候,搜索引擎的查询速度快,第二点在于,搜索引擎能做到比数据库更理解用户。第一点好理解,每当数据库的单个表大了,就是一件头疼的事,还有在较大数据量级的情况下,你让数据库去...

iteye_20432的博客 741

ElasticSearch-IK分词使用踩坑总结

ElasticSearch-IK分词使用踩坑总结 0.3852018.12.16 16:54:00字数 849阅读 5310 ES IK插件自带基础中文分词词典如下: image 但是基础字典不能满足用户自定义需求,故需要IK支持词典自定义能力 ** ES自定义分词词库有以下方式:** 方式一:用户在本地自定义词典 1.在elasticsearch-XXX(版本号)/pl...

weixin_40896800的博客 2391
上一篇: JAVA的远程调试方法(抄抄书,自己看)
下一篇: VB.net中限制TextBox只能输入数字(小数、负数)
benwdm
博客等级 码龄26年 87粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值