有关Schema.xml uniqueKey字段的问题

时间:2011-04-11 08:11:49

标签: indexing solr solrnet

  

可能重复:
  Solr: QueryElevationComponent requires StrField uniqueKeyField error

我hava使用不同的字段配置了schema.xml,如

<fields>
    <field name="id" type="int" indexed="true" stored="true" required="true" /> 
</fields>
<uniqueKey>id</uniqueKey>

当我运行solr服务时,它给我一个错误,如uniquekey field must be string然后我将字段类型int更改为字符串后它工作正常

<fields>
    <field name="id" type="string" indexed="true" stored="true" required="true" /> 
</fields>
<uniqueKey>id</uniqueKey>

但我想在int类型中使用uniquekey。

  

HTTP状态500 - solr配置中的严重错误。检查你的日志   有关可能出错的更详细信息的文件。如果你想   solr在配置错误后继续,更改:   false为null   -------------------------------------------------- ----------- org.apache.solr.common.SolrException:QueryElevationComponent需要   使用StrField实现uniqueKeyField的模式   org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:157)   在   org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:508)   在org.apache.solr.core.SolrCore。(SolrCore.java:588)at at   org.apache.solr.core.CoreContainer $ Initializer.initialize(CoreContainer.java:137)   在   org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:83)   在   org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)   在   org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)   在   org.apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.java:115)   在   org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4071)   在   org.apache.catalina.core.StandardContext.start(StandardContext.java:4725)   在   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)   在   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)   在   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)   在   org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)   在   org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)   在   org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)   在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)   在   org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)   在   org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)   在   org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)   在org.apache.catalina.core.StandardHost.start(StandardHost.java:840)   在   org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)   在   org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)   在   org.apache.catalina.core.StandardService.start(StandardService.java:525)   在   org.apache.catalina.core.StandardServer.start(StandardServer.java:754)   在org.apache.catalina.startup.Catalina.start(Catalina.java:595)at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)at at   org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

2 个答案:

答案 0 :(得分:5)

正如错误所述,QueryElevationComponent需要一个类型为string的唯一键。 This is documented

答案 1 :(得分:3)

注释掉QueryElevationComponent的searchComponent电梯部分。这应该禁用电梯功能。以下是示例

<!--
<searchComponent name="elevator" class="solr.QueryElevationComponent" >
    <str name="queryFieldType">string</str>
    <str name="config-file">elevate.xml</str>
</searchComponent>
-->