[
https://issues.apache.org/jira/browse/LUCENE-5207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13767540#comment-13767540
]
Robert Muir commented on LUCENE-5207:
-------------------------------------
Hi Uwe: please see my commit (we can revert it, if we have to, but i think its
an easy step).
The idea is: JavascriptFunction as a class provides nothing really, it is
nothing more than a Method with some extra checks in its ctor.
So i dont think this class need exist at all, and the default list is nothing
but a unmodifiable Map<String,Method>.
So in addition to:
{code}
public static Expression compile(String sourceText);
{code}
I added:
{code}
public static Expression compile(String sourceText, Map<String,Method>
functions) throws ParseException {
for (Method m : functions.values()) {
checkFunction(m);
}
return new JavascriptCompiler(sourceText, functions).compileExpression();
}
{code}
I will add some tests, but this is very simple and allows someone to expose
whatever methods they want, not just add but also remove :)
> lucene expressions module
> -------------------------
>
> Key: LUCENE-5207
> URL: https://issues.apache.org/jira/browse/LUCENE-5207
> Project: Lucene - Core
> Issue Type: New Feature
> Reporter: Ryan Ernst
> Attachments: LUCENE-5207.patch
>
>
> 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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]