solrsolrcloud

Solr Error: QueryComponent.mergeIds(QueryComponent.java:895) in custom request handler


I'm using Solr 8.4.0 and i tried to make a search request handler that only return a specific sets of field in a collection, without anyone can change what fields to be displayed.

Here is how the request handler looks like

<requestHandler class="solr.SearchHandler" name="/search">
<arr name="components">
  <str>query</str>
  <str>facet</str>
</arr>
<lst name="defaults">
  <int name="rows">10</int>
  <str name="wt">json</str>
  <str name="q.alt">*:*</str>
</lst>
<lst name="invariants">
  <str name="facet">true</str>
  <str name="facet.mincount">1</str>

  <str name="fl">_uniqueid</str>
  <str name="fl">document_title_t</str>
  <str name="fl">document_title_string_s</str>
  <str name="fl">document_shortsummary_t</str>
  <str name="fl">page_url_s</str>
  <str name="fl">topic_path</str>
  <str name="fl">itemid_s</str>
  <str name="echoParams">none</str>
  <str name="omitHeader">true</str>
</lst></requestHandler>

After making the collection and trying the request handler, i received this error

It seems this issue only happens when we are using multiple shards, changing the collection to a single shard removes the error, but we need to have multiple shards for this collection later on production. We are using 2 shards and 3 replicas


Solution

  • I have managed to solve this issue. By going through solr's code from repository in github, i found out that at queryComponent.java line 895 it's trying to access a certain header. After removing the omitHeader invariant the request handler seems to work perfectly