我有分佈在多個solr雲節點上的集合。要在模式中禁用uniqueKey,我還要在solrconfig.xml中禁用QueryElevationComponent。在Solr Cloud中,QueryElevationComponent在分佈式集合中是強制的嗎?
<!--
<searchComponent name="elevator" class="solr.QueryElevationComponent" >
<str name="queryFieldType">string</str>
<str name="config-file">elevate.xml</str>
</searchComponent>
-->
在未分配集合(1 shard,1 rf)中配置工作正常。但是,如果碎片* rf的數量大於1,則會發生問題。當我執行分佈式集合的查詢時,solr會拋出異常。
在org.apache.solr.handler.component.QueryComponent.createMainQuery(QueryComponent.java:852) 在org.apache.solr.handler.component.QueryComponent.regularDistributedProcess顯示java.lang.NullPointerException (QueryComponent的.java:721) 在org.apache.solr.handler.component.QueryComponent.distributedProcess(QueryComponent.java:674) 在org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:345) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:154)
Solr不會抱怨索引。只有查詢是問題。
是的,你是對的。堆棧的最後一部分(堆棧跟蹤上的最上面一行)如下所示: –
String keyFieldName = rb.req.getSchema()。getUniqueKeyField()。getName(); 我猜getUniqueKeyField()返回null並且getName()拋出NullPointerException。 –
向上投票/接受,如果你發現我的答案有用。謝謝 – vinod