solr配置IKAnalyzer抛出ClassNotFoundException
这个问题搞了很久,在QQ群上问了很久,关键很气人的是我居然被群主给开了。我也是醉了。我不知道我哪里得罪了那个solr群的群主。
废话不多说。抛出的异常如下:
刚开始一直认为是没有找到类,也就相当于没找到jar包。但是我的jar包是放到WEB-INF/lib目录中的。我又认为是IK分词器的版本问题,又去下载了新版本jar包,还是不行。然后看到solrconfig.xml中有配置jar路径的配置,然后各种尝试指定IKAnalyzer2012FF_u1.jar的路径----悲催的还是找不到路径。然后又看到http://aswang.iteye.com/blog/1240718这篇博客,以为是缺少其他jar包,又是各种配置,重启。还是不行。
。。。(好吧,根据经验,一般钻牛角尖是钻不通的。我放弃了。)
闲来无事,复习到spring的aop和ioc,需要理解反射机制,又复习了反射机制。这下理解了为什么会抛出ClassNotFoundExeception呢?
Class<_001_Object_getClass> clazz = (Class<_001_Object_getClass>) Class.forName("priv.lirenhe._001_reflect._001_Object_getClass");//类路径
Constructor<_001_Object_getClass> constructor = clazz.getConstructor(null);//思考参数null
_001_Object_getClass object02 = constructor.newInstance(null);
System.out.println("反射机制调用方法:"+object02.getName());
给构造方法传入参数null。 但是一直抛ClassNotFoundExe?已下载明白了,不仅仅只是类路径错了,或者没有那个jar包导致的找不到类路径,同样也是传入构造方法的参数 不符合要求导致类一直找不到。顿时醒悟,那么在配置中导致类找不到应该就是是配置的参数缺失导致的。
在配置IKAnalyzer的时候,我是参考别人的配置方法,别人的配置运行起来能成功,自己的不行,其实这就是因为版本问题,新版本中肯定修改了某个类,导致仅仅注入org.wltea.analyzer.luceneIKAnalyzer时由于没有传参给相应的构造方法而不成功。
---------给solr注入IKAnalyzer分词器到底具体修改了哪个类,不得而知,望指正。
所以我在schma.xml进行以下配置:
//之前的配置
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyze"/>
</fieldType>
//新配置
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
居然可以了,不再报错了。
接下来就是导入数据了。
转发请注明地址:https://blog.csdn.net/mark_lirenhe/article/details/80570963
本文如有问题,请指正。加我QQ:1017621207
solr配置IKAnalyzer抛出ClassNotFoundException的更多相关文章
- Solr配置Ikanalyzer分词器
上一篇文章讲解在win系统中如何安装solr并创建一个名为test_core的Core,接下为text_core配置Ikanalyzer 分词器 1.打开text_core的instanceDir目录 ...
- 为什么全世界都对HTTPS抛出了橄榄枝,HTTPS到底有什么好?HTTPS如何配置?
整个互联网世界,正从"裸奔"向HTTPS时代转型. 淘宝.天猫在2015年完成规模巨大的数据"迁徙",将百万计的页面从HTTP切换到HTTPS:苹果要求所有iO ...
- @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。
@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationEx ...
- shiro配置unauthorizedUrl,无权限抛出无权限异常,但是不跳转
在使用shiro配置无授权信息的url的时候,发现这样的一个scenario,配置好unauthorizedUrl后仍然无法跳转,然后就在网上开始找,找了原因以及解决方案 原因,先post一个源码: ...
- Apache Solr配置
Solr配置 Solr的主要功能是全文检索,该功能分为两个过程:创建索引和对索引进行搜索: 在创建索引之前,需要重点关注两个配置文件:SOLR_HOME/collection1/conf/schema ...
- CAD调试时抛出“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”异常的解决方法
这些天重装了电脑Win10系统,安装了CAD2012和VS2012,准备进行软件开发.在调试程序的时候,CAD没有进入界面就抛出 “正试图在 os 加载程序锁内执行托管代码.不要尝试在 DllMain ...
- Spring异常抛出触发事务回滚
Spring.EJB的声明式事务默认情况下都是在抛出unchecked exception后才会触发事务的回滚 /** * 如果在spring事务配置中不为切入点(如这里的切入点可以定义成test*) ...
- DbUtils使用时抛出Cannot get a connection
java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object Caused by ...
- java使用json抛出org.apache.commons.lang.exception.NestableRuntimeException解决方案
出现这个问题,说明缺少jar包,将下面的jar引入即可 commons-beanutils-1.8.3 commons-lang-2.6 (注:导入最新的 3.1 版本会继续报如下错误) common ...
随机推荐
- [jquery]为jQuery.ajax添加onprogress事件
原理: 给XMLHttpRequest对象的upload属性绑定onprogress方法监听上传过程 var xhr = new XMLHttpRequest(); xhr.upload.onpro ...
- su命令
作用: 切换 用户 选项: -:可以更改当前目录为切换用户的家目录 使用: # 切换用户,当前所在用户目录不变 su 用户名 # 切换用户,当前所在目录改为切换对象的家目录 /home/用户名 su ...
- socket-WebSocket-HttpListener-TcpListener服务端客户端的具体使用案例
/// <summary> /// 启动服务监听的ip和端口的主线程 /// </summary> /// <param name="tunnelPort&qu ...
- 细说Django的中间件
分析Django的生命周期,我们知道所有的http请求都要经过Django的中间件. 假如现在有一个需求,所有到达服务端的url请求都在系统中记录一条日志,该怎么做呢? Django的中间件的简介 D ...
- Confluence 6 配置 Windows 服务
当你使用 Start Confluence Automatically on Windows as a Service 的方式启动的时候,你有下面 2 种方式来配置你的系统属性:通过 command ...
- Selenium WebDriver中鼠标事件
鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driver);action.click();// 鼠标左键在当 ...
- Meta标签详解
[转载]Meta标签详解 Posted on 2005-05-17 20:00 二十四画生 阅读(54195) 评论(102) 编辑 收藏 Meta标签详解,在网上转的,希望对大家有用 引言 您的个 ...
- 【python】mongo删除数据
参考:https://stackoverflow.com/questions/23334743/setting-justone-limiter-for-pymongo-remove-throws-ty ...
- ubuntu MySQL配置文件
查看配置文件: locate my.cnf 查看配置文件路径: /记得要在配置环境变量后执行下列命令 which mysqld /usr/local/mysql/bin/mysqld --verbos ...
- BrupSuite渗透测试笔记(十一)
一.数据查找和拓展功能的使用 1.BrupSuite高级功能在界面布局上主要分成两个部分,一是菜单栏,另一个是Engagement tools,Brup菜单下包含的数据查找Search 组件状态存储. ...