文档章节

mmseg4j-1.9 solr4 bug 处理

空_明
 空_明
发布于 2014/04/01 10:09
字数 470
阅读 313
收藏 0

目前 中文分词mmseg4j  在 solr4 下是不能正常工作的。
解决方法可简单了, 只是solr4 接口有点变化 。

中文分词mmseg4插件的作者 没及时的跟上"solr4 接口"变化。 虽然分词算法是对的,添加的文档不能建索引。

源码80M读是读不懂的。在源码里猜测查找 不能新建索引这个的原因,比较费劲,差点没找到,结果还是“凑巧”给找到了。

bug描述:
(1)java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.l
ucene.analysis.Tokenizer.reset
报错信息
http://code.google.com/p/mmseg4j/issues/detail?id=31 我是在分词测试时碰到这样的错误的。
解决方法

这里的这个文件里的setReader 是新版solr4提供的。旧的接口reset 已经过期。
(2)
不能建索引 的相关描述:http://code.google.com/p/mmseg4j/issues/detail?id=38
原因:MMSegTokenizer 还是按以前版本的的solr 接口的。
          MMSegTokenizer 在solr 里是缓存的,它和词库都是启动时就缓存了。 在后续有新的的短语要分词时,就会调用这个MMSegTokenizer.reset 方法把新词传进来,传给MMSegTokenizer。 但新版solr4里已经不调用这个reset方法了(也就是上图显示的那个reset方法),而是调用setReader ,这样MMSegTokenizer 实际分词的对象mmSeg就得不到新数据。于是 我加了下面的hack 代码,让mmSeg能得到新数据。

解决方法

mmseg4j-1.9 solr4 bug 处理 - wxf4150 - 飞的博客

 
找到MMSegTokenizer.java 这个文件打开 上图 框里的内容是我新加的。 自己找到mmSeg对象加上一个ReaderStatus 属性默认值填0。
然后编译这个包。再放到solr 里去。重启tomcat 就能工作了。

这里上传不了附件, 编译后的结果我就不提交了,大家自己改吧。
不知道google 空间的代码,作者什么时间改,我们就能直接用了。


© 著作权归作者所有

共有 人打赏支持
空_明
粉丝 34
博文 92
码字总数 71993
作品 0
东城
高级程序员
私信 提问
创建solr7.3.0集群_测试集群_添加中文分词器_导入数据

solr是apache下的一个用于做搜索引擎的高级项目,使用它可以满足绝大部分应用的搜索需求。 主机环境: Linux:centos6.5 JDK:1.8 solr:7.3.0 zookeeper:3.4.8 mmseg4j-solr:2.4.0 1. 创建与启...

特拉仔
2018/04/25
0
0
mmseg4j的simple与complex分词效果一样

最近的项目中用到了solr4.7,因IK不支持4.7,并且之前觉得mmseg4j还不错,就选择了mmseg4j,但是遇到一个奇怪的问题。感觉simple和comple效果一样,我理解的simple不应该是尽量分更多的词,只...

tianpeng91
2014/06/19
1K
2
Tomcat 7.0 配置 solr 4.7.2 全过程

Win7 Tomcat 7.0 配置 solr 4.7.2 全过程 http://994582796.iteye.com/blog/2215716 Win7 下 Tomcat7 +solr4.7 配置全过程 帮助文档:XXXsolr-4.7.2docs下的tutorial.html或者index.html 或者......

994582796
2015/05/31
0
0
mseg4j的BUG??

@chenlb 你好,想跟你请教个问题: Hi, 我最近在使用mmseg4j。 用来在mahout进行文本的分类。 文本向量化的过程中需要指定分词器。 使用mmseg4j的时候出现的异常 由于作业是运行在hadoop集群...

liclD
2013/08/09
394
0
solr安装与配置

前提准备: 环境必须是tomcat7.0以上,jdk7.0以上,jre7.0以上,且配置好环境变量。 从官网下载最新版本 1、解压并将solr-4.10.2/example/webapps 下的solr.war拷贝到webapps下手动启动tomca...

hello_bear
2016/08/04
11
0

没有更多内容

加载失败,请刷新页面

加载更多

4.57 MariaDB慢查询日志 4.58 Tomcat_JDK部署 4.59 zrlog安装 4.60 Nginx代理Tomcat

4.57 MariaDB慢查询日志 为什么要配置慢查询日志? 目的是为了帮助我们分析MariaDB的瓶颈点。 如何配置? 1)进入MariaDB里面执行:show variables like 'slow%';show variables li...

Champin
今天
3
0
自动机器学习简述(AutoML)

为什么需要自动机器学习 对于机器学习的新用户而言,使用机器学习算法的一个主要的障碍就是算法的性能受许多的设计决策影响。随着深度学习的流行,工程师需要选择相应的神经网络架构,训练过...

naughty
今天
2
0
Android Studio Unable to resolve dependency for错误的排查

记录一次Android Studio Unable to resolve dependency for错误的排查 Android Studio 3.2.1 错误提示 Unable to resolve dependency for... 原因:在gradle中设置的代理并没有gradle 4.6的版......

Gemini-Lin
今天
0
0
java常用设计模式

设计模式; 一个程序员对设计模式的理解: “不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“...

呵呵哒灬
今天
5
0
Kafka入门

1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词...

watermelon11
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部