solr启动时候,报如下异常:

[java] view plaincopy

  1. SEVERE: org.apache.solr.common.SolrException 
  2.         at org.apache.solr.core.SolrCore.<init>(SolrCore.java:600) 
  3.         at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480) 
  4.         at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332) 
  5.         at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216) 
  6.         at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161) 
  7.         at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) 
  8.         at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) 
  9.         at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) 
  10.         at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) 
  11.         at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838) 
  12.         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
  13.         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) 
  14.         at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) 
  15.         at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) 
  16.         at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) 
  17.         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) 
  18.         at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 
  19.         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
  20.         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
  21.         at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) 
  22.         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
  23.         at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
  24.         at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
  25.         at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
  26.         at org.apache.catalina.startup.Catalina.start(Catalina.java:593) 
  27.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
  28.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
  29.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
  30.         at java.lang.reflect.Method.invoke(Method.java:597) 
  31.         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
  32.         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
  33. Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. 
  34.         at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:202) 
  35.         at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:527) 
  36.         at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594) 
  37.         ... 32 more 
  38. Caused by: java.lang.NumberFormatException: For input string: "MA147LL/A"
  39.         at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
  40.         at java.lang.Integer.parseInt(Integer.java:449) 
  41.         at java.lang.Integer.parseInt(Integer.java:499) 
  42.         at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:291) 
  43.         at org.apache.solr.handler.component.QueryElevationComponent$ElevationObj.<init>(QueryElevationComponent.java:119) 
  44.         at org.apache.solr.handler.component.QueryElevationComponent.loadElevationMap(QueryElevationComponent.java:264) 
  45.         at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:186) 
  46.         ... 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

  1. <searchComponent name="elevator" class="solr.QueryElevationComponent"> 
  2. <!--  pick a fieldType to analyze queries  --> 
  3. <str name="queryFieldType">string</str> 
  4. <str name="config-file">elevate.xml</str> 
  5. </searchComponent> 
  6. <!-- 
  7. A request handler for demonstrating the elevator component  
  8. --> 
  9. <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy"> 
  10. <lst name="defaults"> 
  11. <str name="echoParams">explicit</str> 
  12. <str name="df">text</str> 
  13. </lst> 
  14. <arr name="last-components"> 
  15. <str>elevator</str> 
  16. </arr> 
  17. </requestHandler> 

从配置文件得知在初始化QueryElevationComponent的时候会去加载conf目录下的elevate.xml文件,所以打开elevate.xml文件看看:

[java] view plaincopy

  1. <elevate> 
  2. <query text="foo bar"> 
  3.   <doc id="1" /> 
  4.   <doc id="2" /> 
  5.   <doc id="3" /> 
  6. </query> 
  7. <query text="ipod"> 
  8.    <doc id="MA147LL/A" />  <!-- put the actual ipod at the top --> 
  9.    <doc id="IW-02" exclude="true" /> <!-- exclude this cable --> 
  10. </query> 
  11. </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

  1. <searchComponent name="elevator" class="solr.QueryElevationComponent"> 
  2. <!--  pick a fieldType to analyze queries  --> 
  3. <str name="queryFieldType">string</str> 
  4. <str name="config-file">elevate.xml</str> 
  5. </searchComponent> 
  6. <!-- 
  7. A request handler for demonstrating the elevator component  
  8. --> 
  9. <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy"> 
  10. <lst name="defaults"> 
  11. <str name="echoParams">explicit</str> 
  12. <str name="df">text</str> 
  13. </lst> 
  14. <arr name="last-components"> 
  15. <str>elevator</str> 
  16. </arr> 
  17. </requestHandler> 

PS: QueryElevationComponent组件用于solr实现竞价排名,接下来会写一篇关于solr竞价排名的文章。

Defining as a "long" or "int" type throws an error on startup的更多相关文章

  1. 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 ...

  2. [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] 这个 ...

  3. 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 ...

  4. "Type Coercion failed" Error in FlashBuilder 4.7

    作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/3544450.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 做robot ...

  5. task:scheduled cron 合法

    http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html task:scheduled o ...

  6. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  7. 1.4 Service

    用于在后台完成用户指定的操作,为其他组件提供后台服务或监控其他组件的运行状态. 开发人员需要在应用程序配置文件中声明全部的service,使用<service></service&g ...

  8. 自动扫描FTP文件工具类 ScanFtp.java

    package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  9. RSA加密解密操作

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

随机推荐

  1. Spring AOP体系学习总结:

    二.Spring AOP体系学习总结: 要理解AOP整体的逻辑需要理解一下Advice,Pointcut,Advisor的概念以及他们的关系. Advice是为Spring Bean提供增强逻辑的接口 ...

  2. php递归创建目录

    /** * 递归创建目录 * @param [string] $path [创建的目录] * @return [type] [description] */ function mk_Dir($path ...

  3. angularJs 使用中遇到的问题小结【一:关于传参】

    我请教个问题 :我在界面传了一个参数<a ng-click="deleteOrder({{orderOrder}})" class="btn warning-btn ...

  4. ios>android>javaee

    外面就业很多年的认识给出来我这个结论,请问各位有什么看法?

  5. 第三部分 关于HHibernate中关键字ID的配置

    实体类映射中,必须配置一个关键字,对应着数据表的关键字,大多数的实体类也都有一个属性表示类的唯一性,在实体类配置文件(.hbm.xml)中,<id>元素的就是这个作用. 一个完整的ID配置 ...

  6. jquery 关于event.target使用的几点说明介绍

    event.target说明:引发事件的DOM元素. this和event.target的区别js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的 ...

  7. [C#][转]与MySql连接访问

    using System;using System.Configuration;using MySql.Data.MySqlClient;/// <summary>/// TestDate ...

  8. HDU 1429 胜利大逃亡(续)(DP + 状态压缩)

    胜利大逃亡(续) Problem Description Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)…… 这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢 ...

  9. hdu 1018 Big Number (数学题)

    Problem Description Inmany applications very large integers numbers are required. Some of theseappli ...

  10. phpExcel使用与中文处理教程

    PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择.不过其使用方法相对来说也就有些繁琐. phpExcel ...