Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Security Level: Public (Default Security Level. Issues are Public)
    • Labels:
      None

      Description

      This is an extension to the JSON facet functionality, to support faceting on a function. I have extended the parsing of json.facet to allow a 4th facet type (function) and you provide a function expression. You can also provide sort, limit and mincount, as it behaves similarly to faceting on a field. Subfacets work as normal - you can nest function facets anywhere you can use other types.

      The output is in the same format as field facets, but with a bucket per distinct value produced by the function. Hence the usage of this is most appropriate for situations where your function only produces a relatively small number of possible values. It's also recommended to have docValues on any field used by the function.

      Our initial use-case for this is with a function that extracts a given part from a date field's value e.g. day of week, or hour of day, where the possible range of output values is very low.

      Still TODO: documentation, unit tests, and possible extensions to support a missing bucket and functional sorting (currently it's only sortable by the bucket label or by volume)

      Example usage:

      { facet : { dayOfWeek : { type : function, f : "chronofield(my_date_field,DAY_OF_WEEK)", sort : "count desc" } } }
      

      I did some refactoring in the facet parser, to hoist some common code for sort and pagination parsing.

        Attachments

        1. SOLR-11765.patch
          19 kB
          Tim Owen
        2. SOLR-11765.patch
          18 kB
          Tim Owen

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              TimOwen Tim Owen
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated: