Details
Description
Attached
- PDF with instructions on how to replicate.
- data.xml to replicate index
The f.<field>.facet.mincount option on a distributed search gives inconsistent list of buckets on a range facet.
Experiencing that some buckets are ignored when using the option "f.<field>.facet.mincount=1".
The Solr logs do not indicate any error or warning during execution.
The debug=true option and increasing the log levels to the FacetComponent do not provide any hints to the behaviour.
Replicated the issue on both Solr 4.5.1 & 4.8.1.
Example,
Removing the f.<field>.facet.mincount=1 option gives the expected list of buckets for the 6 documents matched.
<lst name="facet_ranges">
<lst name="price">
<lst name="counts">
<int name="0.0">0</int>
<int name="50.0">1</int>
<int name="100.0">0</int>
<int name="150.0">3</int>
<int name="200.0">0</int>
<int name="250.0">1</int>
<int name="300.0">0</int>
<int name="350.0">0</int>
<int name="400.0">0</int>
<int name="450.0">0</int>
<int name="500.0">0</int>
<int name="550.0">0</int>
<int name="600.0">0</int>
<int name="650.0">0</int>
<int name="700.0">0</int>
<int name="750.0">1</int>
<int name="800.0">0</int>
<int name="850.0">0</int>
<int name="900.0">0</int>
<int name="950.0">0</int>
</lst>
<float name="gap">50.0</float>
<float name="start">0.0</float>
<float name="end">1000.0</float>
<int name="before">0</int>
<int name="after">0</int>
<int name="between">2</int>
</lst>
</lst>
Using the f.<field>.facet.mincount=1 option removes the 0 count buckets but will also omit bucket <int name="250.0">
<lst name="facet_ranges">
<lst name="price">
<lst name="counts">
<int name="50.0">1</int>
<int name="150.0">3</int>
<int name="750.0">1</int>
</lst>
<float name="gap">50.0</float>
<float name="start">0.0</float>
<float name="end">1000.0</float>
<int name="before">0</int>
<int name="after">0</int>
<int name="between">4</int>
</lst>
</lst>
Resubmitting the query renders a different bucket list
(May need to resubmit a couple times)
<lst name="facet_ranges">
<lst name="price">
<lst name="counts">
<int name="150.0">3</int>
<int name="250.0">1</int>
</lst>
<float name="gap">50.0</float>
<float name="start">0.0</float>
<float name="end">1000.0</float>
<int name="before">0</int>
<int name="after">0</int>
<int name="between">2</int>
</lst>
</lst>