Package org.apache.lucene.expressions
Class Expression
- java.lang.Object
- 
- org.apache.lucene.expressions.Expression
 
- 
 public abstract class Expression extends Object Base class that computes the value of an expression for a document.Example that sorts based on an expression: // compile an expression: Expression expr = JavascriptCompiler.compile("sqrt(_score) + ln(popularity)"); // SimpleBindings just maps variables to SortField instances SimpleBindings bindings = new SimpleBindings(); bindings.add(new SortField("_score", SortField.Type.SCORE)); bindings.add(new SortField("popularity", SortField.Type.INT)); // create a sort field and sort by it (reverse order) Sort sort = new Sort(expr.getSortField(bindings, true)); Query query = new TermQuery(new Term("body", "contents")); searcher.search(query, 10, sort);Example that modifies the scores produced by the query: // compile an expression: Expression expr = JavascriptCompiler.compile("sqrt(_score) + ln(popularity)"); // SimpleBindings just maps variables to SortField instances SimpleBindings bindings = new SimpleBindings(); bindings.add(new SortField("_score", SortField.Type.SCORE)); bindings.add(new SortField("popularity", SortField.Type.INT)); // create a query that matches based on body:contents but // scores using expr Query query = new FunctionScoreQuery( new TermQuery(new Term("body", "contents")), expr.getDoubleValuesSource(bindings)); searcher.search(query, 10);- See Also:
- JavascriptCompiler.compile(java.lang.String)
- WARNING: This API is experimental and might change in incompatible ways in the next release.
 
- 
- 
Field SummaryFields Modifier and Type Field Description StringsourceTextThe original source textString[]variablesNamed variables referred to by this expression
 - 
Constructor SummaryConstructors Modifier Constructor Description protectedExpression(String sourceText, String[] variables)Creates a newExpression.
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract doubleevaluate(DoubleValues[] functionValues)Evaluates the expression for the current document.DoubleValuesSourcegetDoubleValuesSource(Bindings bindings)Get a DoubleValuesSource which can compute the value of this expression in the context of the given bindings.RescorergetRescorer(Bindings bindings)Get aRescorer, to rescore first-pass hits using this expression.SortFieldgetSortField(Bindings bindings, boolean reverse)Get a sort field which can be used to rank documents by this expression.
 
- 
- 
- 
Method Detail- 
evaluatepublic abstract double evaluate(DoubleValues[] functionValues) Evaluates the expression for the current document.- Parameters:
- functionValues-- DoubleValuesfor each element of- variables.
- Returns:
- The computed value of the expression for the given document.
 
 - 
getDoubleValuesSourcepublic DoubleValuesSource getDoubleValuesSource(Bindings bindings) Get a DoubleValuesSource which can compute the value of this expression in the context of the given bindings.- Parameters:
- bindings- Bindings to use for external values in this expression
- Returns:
- A DoubleValuesSource which will evaluate this expression when used
 
 - 
getSortFieldpublic SortField getSortField(Bindings bindings, boolean reverse) Get a sort field which can be used to rank documents by this expression.
 
- 
 
-