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

multiValued PrimitiveFieldType should implicitly sort on min/max based on the asc/desc keyword

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 7.3, 8.0
    • None
    • None

    Description

      Back in SOLR-2522, I added new syntax for (numeric) fields such that the field(someMultivaluedFieldName,min|max) syntax could be used to select either the min or max value of a multivalued (docvalues) field for use in other functions – or for sorting.

      A little while back, it occured to me that a good "default" behavior for all primative multivalued fields would be:

      • automatically use the "min" value when sort=someMultivaluedFieldName asc is attempted
      • automatically use the "max" value when sort=someMultivaluedFieldName desc is attempted

      These defaults seem like they would be a big improvement over the current "throw an error" default behavior – especially since it naturally reduces down in the trivial case where all docs have at most 1 value anyway – and would align in practice with how most people I've talked to seem to think "sorting on a multivalued field" should work in theory. If users don't like these dafaults, they can always use the explicit field(foo,min|max) syntax instead (ex: if users always want multivalued fields to sort on the 'min' value, regardless of the asc|desc selector)

      I've been experimenting with this off and on for a while, working up a POC patch – I think it's worth doing (details to follow in comment)

      Attachments

        1. SOLR-11854.patch
          68 kB
          Chris M. Hostetter
        2. SOLR-11854.patch
          64 kB
          Chris M. Hostetter

        Activity

          People

            hossman Chris M. Hostetter
            hossman Chris M. Hostetter
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: