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.
- 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.