Defining as a "long" or "int" type throws an error on startup
solr启动时候,报如下异常:
[java] view plaincopy
- SEVERE: org.apache.solr.common.SolrException
- at org.apache.solr.core.SolrCore.<init>(SolrCore.java:600)
- at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480)
- at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332)
- at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216)
- at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161)
- at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
- at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
- at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
- at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
- at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
- at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
- at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
- at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
- at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
- at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
- at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
- at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
- at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
- at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
- at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
- at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
- at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
- at org.apache.catalina.core.StandardService.start(StandardService.java:516)
- at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
- at org.apache.catalina.startup.Catalina.start(Catalina.java:593)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:597)
- at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
- at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
- Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent.
- at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:202)
- at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:527)
- at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594)
- ... 32 more
- Caused by: java.lang.NumberFormatException: For input string: "MA147LL/A"
- at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
- at java.lang.Integer.parseInt(Integer.java:449)
- at java.lang.Integer.parseInt(Integer.java:499)
- at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:291)
- at org.apache.solr.handler.component.QueryElevationComponent$ElevationObj.<init>(QueryElevationComponent.java:119)
- at org.apache.solr.handler.component.QueryElevationComponent.loadElevationMap(QueryElevationComponent.java:264)
- at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:186)
- ... 34 more
我的solr版本是3.6.1。
通过查看异常堆栈 :Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent.和Caused by: java.lang.NumberFormatException: For input string: "MA147LL/A"
问题定位在初始化QueryElevationComponent组件时失败。在solrconfig.xml文件中找到QueryElevationComponent的配置项:
[java] view plaincopy
- <searchComponent name="elevator" class="solr.QueryElevationComponent">
- <!-- pick a fieldType to analyze queries -->
- <str name="queryFieldType">string</str>
- <str name="config-file">elevate.xml</str>
- </searchComponent>
- <!--
- A request handler for demonstrating the elevator component
- -->
- <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- <str name="df">text</str>
- </lst>
- <arr name="last-components">
- <str>elevator</str>
- </arr>
- </requestHandler>
从配置文件得知在初始化QueryElevationComponent的时候会去加载conf目录下的elevate.xml文件,所以打开elevate.xml文件看看:
[java] view plaincopy
- <elevate>
- <query text="foo bar">
- <doc id="1" />
- <doc id="2" />
- <doc id="3" />
- </query>
- <query text="ipod">
- <doc id="MA147LL/A" /> <!-- put the actual ipod at the top -->
- <doc id="IW-02" exclude="true" /> <!-- exclude this cable -->
- </query>
- </elevate>
你会发现有一个id="MA147LL/A"和id="IW-02"的配置项,问题就在于id的值为"MA147LL/A"和IW-02,它是string类型,当我们把所<uniqueKey> id 定义为long或int等number类型时,自然会报以上异常。
这是一个solr的bug:https://issues.apache.org/jira/browse/SOLR-2997
有两种解决方案:
(一)将id="MA147LL/A" 改为id="1",将id="IW-02"改为id="2",将其值设为整形。
(一)在solrconfig.xml文件中注释掉以下代码:(QueryElevationComponent组件对于初学者一般上不用,所以可以先注释掉)
[java] view plaincopy
- <searchComponent name="elevator" class="solr.QueryElevationComponent">
- <!-- pick a fieldType to analyze queries -->
- <str name="queryFieldType">string</str>
- <str name="config-file">elevate.xml</str>
- </searchComponent>
- <!--
- A request handler for demonstrating the elevator component
- -->
- <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- <str name="df">text</str>
- </lst>
- <arr name="last-components">
- <str>elevator</str>
- </arr>
- </requestHandler>
PS: QueryElevationComponent组件用于solr实现竞价排名,接下来会写一篇关于solr竞价排名的文章。
Defining as a "long" or "int" type throws an error on startup的更多相关文章
- Could not autowire. No beans of 'int' type found. less... (Ctrl+F1) Checks autowiring problems in a bean class.
package com.cxy.netty.controller; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel ...
- [Creating an image format with an unknown type is an error] on cordova, ios 10
在 iOS 10 调用 了 获取 相册的 可编辑 的 照片后,会出现 [Creating an image format with an unknown type is an error] 这个 ...
- BAPI_ACC_DOCUMENT_POST Enter rate / GBP rate type M for Error SG105
Folks, I was wondering if I could get a bit of help here as I've been racking my brains on it for ag ...
- "Type Coercion failed" Error in FlashBuilder 4.7
作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/3544450.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 做robot ...
- task:scheduled cron 合法
http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html task:scheduled o ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- 1.4 Service
用于在后台完成用户指定的操作,为其他组件提供后台服务或监控其他组件的运行状态. 开发人员需要在应用程序配置文件中声明全部的service,使用<service></service&g ...
- 自动扫描FTP文件工具类 ScanFtp.java
package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...
- RSA加密解密操作
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
随机推荐
- app抓包
http://www.360doc.com/content/14/1126/11/9200790_428168701.shtml 记得下载证书 不然有些网站是抓不到的
- 构建可克隆的对象(ICloneable)
ICloneable接口 如果想使自己的自定义类型支持向调用方返回自身同样副本的能力,需要实现标准ICloneable接口. namespace System { // // 摘要: // Suppo ...
- 隐藏元素的宽高无法通过原生js获取的问题
1.起源:移动app项目中,页面加载时需要加载国家下拉列表,将隐藏的透明浮层和一个显示加载过程中的框 显示出来,隐藏的透明浮层设置宽高都是100%即可,而这个加载提示框需要先得出它的宽高,然后再根据页 ...
- Synchronized vs SyncRoot
我们知道,在.net的一些集合类型中,譬如Hashtable和ArrayList,都有Synchronized静态方法和SyncRoot实例方法,他们之间有联系吗?我怎么才能用好他们呢?我们以Hash ...
- cocos2d-x系列 Mac下配置cocos2d-x开发环境(android和ios)
一.下载cocos2d-x http://cocos2d-x.org/projects/cocos2d-x/wiki/Download cocos2d-x-2.1.4.zip @ June.18, 2 ...
- WPF 窗体中的 Canvas 限定范围拖动 鼠标滚轴改变大小
xaml代码: <Canvas Name="movBg"> <Canvas.Background> <LinearGradientBrush EndP ...
- HDU1862EXCEL排序
其实最近都没有兴趣做排序题目,因为我觉得纯粹排序对我而言进步不大,但是舍友TLE了,叫我试一试. 整道题的思路很简单啦,我用的是快排,比较的原则也给得很清楚,不必多言,我没有用stdlib的快排,也没 ...
- 正则过滤html标签
var html = "<p>好好学习,<br>天天向上</p>"; var re=/<[^>]+>/g; var text ...
- svn服务器时间与本地时间不同步解决
在用svn的时候,由于svn的时间与本地不同步,导致每次看log总是需要对时间. 今天修改了svn服务器时间与本地同步.只需要修改svn服务器时间与本地时间相同即可,但要主要修改时区,不然会出现时间又 ...
- centos乱码问题解决
1.yum groupinstall chinese-support 安装中文语言包 2.vi /etc/sysconfig/i18n 修改文件为: LANG="zh_CN.UTF-8&qu ...