Solr6适配自定义升级版mmseg4j
摘要: 接上一篇,由于Solr6在使用mmseg4j中文分词时,Solr会出现getInstanceDir()
的NoSuchMethodError
异常,需要修改mmseg4j源码,使之兼容。如果还未配置好mmseg4j,请到Solr6配置中文分词库mmseg4j
下载源码
- 开源地址:https://github.com/chenlb/mmseg4j-solr
- 环境与工具:JDK8,Eclipse4.5(带有git插件,Maven插件)
- 引入项目:Import – > Git – > Projects from Git – > Clone URI
填入URI:https://github.com/chenlb/mmseg4j-solr ,其他都用默认值,用户名、密码留空
Next – > Next – > Import as general project
转换成Maven项目:工程mmseg4j-solr 右键 – > Configure – > Convert to Maven Project – > 等待转换完成,要下载很多Jar包,需要比较长时间
修改
pom.xml
文件:升级solr版本为solr6,更改mmseg4j为2.3.2-SNAPSHOT。我还修改了maven-plugins的版本,因为项目里的版本我未能从中央仓库找到。
修改源码
- 等待Eclipse自动build项目,发现错误:
- 改源码:将Solr6已经改变的API改成
srl.getInstancePath()
,错误消失。 - 打包:项目上右键 – > Run As – > Maven Build(目标填:clean install)
- 发现错误:
Solr no longer supports forceful unlocking via the 'unlockOnStartup' option.
发现在solrconfig.xml
的第63行,有这样的配置<unlockOnStartup>true</unlockOnStartup>
,而如果为true,在启动的时候不锁定任何持有写或者提交的锁。 这打败了允许多个程序安全访问lucene索引并且应该小心使用的理论依据。 因此Solr6已经不允许这样的操作,我来把它改为<unlockOnStartup>false</unlockOnStartup>
,当然,最简单的办法就是把它注释掉。 - 打包:
- 发现问题:
Unsupported major.minor version
,Java版本不对应,Solr6需要JDK8才可以。 - 修改:
Java Compiler
和Java Build Path
为1.8版本的Java。 - 打包:
- 发现问题:
SolrCore 'mmseg4j_core' is not available due to init failure: Error loading class 'org.apache.solr.handler.admin.AdminHandlers'
,有一个包找不到,去看看源码。
- 对比源码,发现,Solr5.0开始,这个AdminHandlers已经被废弃了(类名上有删除线),并且在Solr6.0以后,这个类直接被移除了,所以,已经找不到这个AdminHandlers了。
- 修改:找到使用
AdminHandlers
的地方,在solrconfig.xml
的第240行,发现<requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
,由于这个Handler 已经不再用,于是将这行代码注释。 - 打包
- Testcase测试通过,在项目target目录下生成了需要的jar包,替换原来的
mmseg4j-solr-2.3.0.jar
,大功告成!
总结,升级别人的jar包还是很折腾的,好在,这个项目已经开源,需要修改的地方也不多。如果你不愿意折腾,我把打包好的jar文件放在了CSDN上,包含
mmseg4j-solr-2.3.2.jar
和mmseg4j-core-1.10.0.jar
,点击下载。
Solr6适配自定义升级版mmseg4j相关推荐
- TVM适配NN编译Compiler缺陷
TVM适配NN编译Compiler缺陷 内容纲要 前言 TVM针对VTA的编译流程 i. 自定义VTA架构:TVM的缺陷与性能瓶颈 TVM缺陷与瓶颈 i. 缺陷一:SRAM配置灵活性差 ii. 缺陷二 ...
- Mantis-如何自定义流程状态
西西的博客 Mantis-如何自定义流程状态 关键词: Mantis自定义流程状态 相信大家在使用mantis的时候 ...
- Android App Dark Theme(暗黑模式)适配指南,android实战mysql
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v2qd7l5a-1636430548017)(https://user-gold-cdn.xitu.io/2020/3/ ...
- Android App Dark Theme(暗黑模式)适配指南
在 2019 年的 Google I/O 和 Apple WWDC 上,新露面的 Android 10 和 iOS 13 都宣布将支持 Dark Theme 也就是我们常说的暗黑模式,并提供相关 AP ...
- Android 适配Dark Theme(暗黑模式),看完跪了
Force Dark自动适配 Android 10 提供 Force Dark 功能.此功能可让开发者快速实现深色主题背景,只需要在 style.xml 中的应用主题中添加这一行代码android:f ...
- Android 适配Dark Theme(暗黑模式),Android高级工程师必备知识
Android 10 提供 Force Dark 功能.此功能可让开发者快速实现深色主题背景,只需要在 style.xml 中的应用主题中添加这一行代码android:forceDarkAllowed ...
- android notification设置不同字体颜色,Android Notification自定义通知样式你要知道的事...
本文将根据个人经验对Notification做个总结,以供参考! 什么是通知(Notification) 通知是一个可以在应用程序正常的用户界面之外显示给用户的消息. 通知发出时,它首先出现在状态栏的 ...
- Android 版本更新(非热更新) 适配7.0更新 以及三星 note系列读取内存相关目录无权限问题
目录 [TOC] 个人认为热更新虽然是好 但是 像ios直接拒绝使用热更新 也不无道理 本人一直使用传统的版本升级方式 请求接口 返回下载链接 然后下载文件 用Intent吊起安装 android7. ...
- Paddle预训练模型应用工具PaddleHub
Paddle预训练模型应用工具PaddleHub • 本文主要介绍如何使用飞桨预训练模型管理工具PaddleHub,快速体验模型以及实现迁移学习.建议使用GPU环境运行相关程序,可以在启动环境时,如下 ...
- 五行代码玩转GPT-2,新加坡高中生开源轻量级GPT-2“客户端”
鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI OpenAI会讲故事的文本生成模型GPT-2,现在有了更易用的封装版本. 轻松上手,轻量级,速度快.这就是这只名叫gpt2-client的 ...
最新文章
- LSGO代码小组第16周复盘日志
- java 解析 csv 文件
- Oracle教程之四招提高Oracle位图索引的使用效果
- mysql存储number_DUMP函数--Oracle是如何在内部存储NUMBER类型的数据?
- word List 13
- spring框架mvc框架_Spring的MVC测试框架入门–第1部分
- 关于 RGB 的颜色认知
- 查询网站web服务器,web服务器地址查询
- Spark分区详解!DT大数据梦工厂王家林老师亲自讲解!
- maven install 读取jar包时出错;error in opening zip file
- DS博客作业01--日期抽象数据类型设计与实验
- python迭代遍历目录下所以文件(Iterating through directories with Python)
- UNI-APP 小程序生成海报
- 2012 r2 万能网卡驱动_MultiBeast | 黑苹果的驱动精灵简单使用解读
- 如何做网站推广?如何提高网站浏览量?
- 计算机圣诞节教案,2010我们的圣诞节(2010圣诞节教案)
- 计算机网络通信模型之cs模式(一)简单的socket
- 数据库cosc2406-2407辅导week10-quiz-Transactions and Concurrency
- 根据IMSI区别运营商
- Virsh 虚拟机迁移