Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-6154

SolrCloud: facet range option f.<field>.facet.mincount=1 omits buckets on response

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.5.1, 4.8.1
    • 5.0, 6.0
    • None
    • None

    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>

      Attachments

        1. data.xml
          6 kB
          Ronald Matamoros
        2. HowToReplicate.pdf
          339 kB
          Ronald Matamoros

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            erickerickson Erick Erickson
            rmatamoros Ronald Matamoros
            Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment