In   FacetComponent.doDistribRanges, there's this code:

          for (Map.Entry<String,Integer> existPair : existFieldValues) {
            final String key = existPair.getKey();
            // can be null if inconsistencies in shards responses
            Integer newValue = shardFieldValues.get(key);
            if  (null != newValue) {
              Integer oldValue = existPair.getValue();
              existPair.setValue(oldValue + newValue);
            }

The problem here is that it assumes that the first list in has all the
counts that ever will be reported from any shard.

See SOLR-6154. If the mincount is 1, and it happens that the first set
of counts in doesn't have a count for value X, then any shard that
_does_ report a count for X will just have that count ignored.

I'm fixing this up now, just checking if I'm out in the weeds or not.

Admittedly, in any "real" installation it's probably unlikely that a
mincount of 1 will happen, but still..

There's also special logic when distributing the queries that adds a
mincount of 1 to the shard-requests if mincount=1 is specified. I
suspect the interaction here is the problem.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to