Description
RangeFacetProcessor.getFacetRangeCountsDocValues is checking every range name over FacetParams.FacetRangeOther enum via catching IllegalArgumentException from valueOf, rethrowing it as SolrException and picking a branch based on the presence of last one.
It is very slow due to enormous cost of failed Enum.valueOf.
Also RangeFacetRequest.FacetRange already have a field with parsed FacetRangeOther value for special ranges or null for ordinary ones.
Replacing this with simple null check leads to huge performance boost here.
In real case with a lot of intervals (~2000) whole QTime is reduced from 300ms to 50ms by this patch.