Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-5207

lucene expressions module

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 4.6, 6.0
    • None
    • None
    • New

    Description

      Expressions are geared at defining an alternative ranking function (e.g. incorporating the text relevance score and other field values/ranking
      signals). So they are conceptually much more like ElasticSearch's scripting support (http://www.elasticsearch.org/guide/reference/modules/scripting/) than solr's function queries.

      Some additional notes:

      • In addition to referring to other fields, they can also refer to other expressions, so they can be used as "computed fields".
      • You can rank documents easily by multiple expressions (its a SortField at the end), e.g. Sort by year descending, then some function of score price and time ascending.
      • The provided javascript expression syntax is much more efficient than using a scripting engine, because it does not have dynamic typing (compiles to .class files that work on doubles). Performance is similar to writing a custom FieldComparator yourself, but much easier to do.
      • We have solr integration to contribute in the future, but this is just the standalone lucene part as a start. Since lucene has no schema, it includes an implementation of Bindings (SimpleBindings) that maps variable names to SortField's or other expressions.

      Attachments

        1. LUCENE-5207.patch
          165 kB
          Robert Muir
        2. LUCENE-5207.patch
          163 kB
          Robert Muir
        3. LUCENE-5207.patch
          270 kB
          Ryan Ernst

        Activity

          People

            Unassigned Unassigned
            rjernst Ryan Ernst
            Votes:
            1 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: