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. matlab中find 函数如何使用

    find函数用于返回所需要元素的所在位置 (位置的判定:在矩阵中,第一列开始,自上而下,依次为1,2,3...,然后再从第二列,第三列依次往后数) 举例: ①find(A)返回矩阵A中非零元素所在位置 ...

  2. spring quartz 多次调用

    背景:公司项目有一个定时任务,每月1号0点执行,用到了spring的定时任务.发下定时任务调用的方法执行了俩次.测试部署的客户现场不会有问题 (测试的server.xml不会变化,除非本身提供的tom ...

  3. SQL生成一柱双色球

    数据库环境:SQL SERVER 2005 以前用C/JAVA穷举双色球的所有排列,今天想着换成用SQL实现,只生成一柱双色球. 简单说下双色球的规则,双色球由红色球和蓝色球组成,每注投注号码由6个红 ...

  4. Oracle学习第二天

    oracle数据库的常见数据类型oracle全部数据类型 有26种 char定长字符串类型 长度是固定不变的 例如:no char(10) 如果存入的值不足十个字符,其它位也被占用默认长度是1 最大长 ...

  5. CSS Outlines

    轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用. 轮廓(outline)属性指定了样式,颜色和外边框的宽度. 轮廓(outline)实例 在元素周围画线本例演 ...

  6. Java基础--Java内存管理与垃圾回收

      Java自动内存管理 在讲解内存管理之前,首先需要了解对象和对象引用的区别 对象是类的一个实例,以人这个类为例,Person是我们定义的一个类 public class Person{} publ ...

  7. 打印十进制数n 递归

    #include<stdio.h> //printd函数: 打印十进制数n void printd(int n){ ){ putchar('-'); n=-n; } ) printd(n/ ...

  8. 使用sprintf打印float并控制小数位数时引起的问题

    最近在做项目中发现一个Bug,直接把进程搞死,查了一下,居然是一个最不起眼的地方导致的,在此记录一下. 先看下面代码 #include <iostream> #include <st ...

  9. iframe中的各种跳转方法(转)

    一.背景A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,在D中跳转页面的写法区别如下. 二.JS跳转window.location.href.locatio ...

  10. WF学习笔记(二)

    -DoWhile循环:当[Condition]条件为真时会执行[Body]中的内容, 当[Condition]条件为假时会执行[Body]中的内容一次 -ForEach<T> 循环 :[V ...