在Solr Cloud中,分布式集合中的QueryElevationComponent是强制性的吗?

时间:2016-10-25 02:38:20

标签: linux solr

我的集合分布在多个solr云节点上。要在模式中禁用uniqueKey,我还在solrconfig.xml中禁用QueryElevationComponent。

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

配置在未分配的集合中正常工作(1个分片,1个rf)。但是如果分片数* rf大于1,则会出现问题。当我对分布式集合执行查询时,solr会抛出异常。

  

显示java.lang.NullPointerException    at org.apache.solr.handler.component.QueryComponent.createMainQuery(QueryComponent.java:852)    at org.apache.solr.handler.component.QueryComponent.regularDistributedProcess(QueryComponent.java:721)    在org.apache.solr.handler.component.QueryComponent.distributedProcess(QueryComponent.java:674)    在org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:345)    在org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:154)

Solr不会抱怨索引。只有查询才有问题。

1 个答案:

答案 0 :(得分:2)

uniqueKey是必需的。如  它可能会      在SolrCloud中进行路由并且文档替换通常会失败。

如果您在云模式下使用solr,请在架构中启用uniqueKey。