public static final class SortOptions.Builder
extends java.lang.Object
SortOptionss.
A SortOptions will evaluate each of the
SortExpressions on each search result and apply a
sort order with priority given to the sort expressions from left to right.
The following code illustrates creating a SortOptions specification
to sort documents based on decreasing product rating and then within
rating showing cheapest products based on price plus tax,
sorting at most 2000 documents.
SortOptions sortOptions = SortOptions.newBuilder()
.addSortExpression(SortExpression.newBuilder()
.setExpression("rating")
.setDirection(SortExpression.SortDirection.DESCENDING)
.setDefaultValueNumeric(0))
.addSortExpression(SortExpression.newBuilder()
.setExpression("price + tax")
.setDirection(SortExpression.SortDirection.ASCENDING)
.setDefaultValueNumeric(99999999.00))
.setLimit(1000)
.build();
The following code fragment shows how the score from a MatchScorer
can be used in an expression that combines the score with one thousandth of
an "importance" field. At most 1000 documents are scored and sorted.
SortOptions sortOptions = SortOptions.newBuilder()
.setMatchScorer(MatchScorer.newBuilder())
.addSortExpression(SortExpression.newBuilder()
.setExpression(String.format(
"%s + (importance * .001)", SortExpression.SCORE_FIELD_NAME))
.setDirection(SortExpression.SortDirection.DESCENDING)
.setDefaultValueNumeric(0))
.setLimit(1000)
.build();
| Modifier and Type | Method and Description |
|---|---|
SortOptions.Builder |
addSortExpression(SortExpression.Builder builder)
Adds a
SortExpression built from the builder to the list of sort
expressions. |
SortOptions.Builder |
addSortExpression(SortExpression sortExpression)
Adds a
SortExpression to the list of sort expressions. |
SortOptions |
build()
Builds a
SortOptions from the set values. |
SortOptions.Builder |
setLimit(int limit)
Sets the limit on the number of documents to score or sort.
|
SortOptions.Builder |
setMatchScorer(MatchScorer.Builder builder)
Sets the matchScorer to the
MatchScorer built from the builder. |
SortOptions.Builder |
setMatchScorer(MatchScorer matchScorer)
|
SortOptions.Builder |
setMatchScorer(RescoringMatchScorer.Builder builder)
Sets the matchScorer to the
RescoringMatchScorer built from the
builder. |
public SortOptions.Builder setLimit(int limit)
limit - the maximum number of documents to score or sortjava.lang.IllegalArgumentException - if the limit is out of rangepublic SortOptions.Builder setMatchScorer(MatchScorer matchScorer)
MatchScorer or RescoringMatchScorer to base some
SortExpressions on. The value of the matchScorer can
be accessed by using the field name "_score".matchScorer - the rescoring/match matchScorer to use in an expression built
on "_score"public SortOptions.Builder setMatchScorer(MatchScorer.Builder builder)
MatchScorer built from the builder.builder - a builder of a MatchScorersetMatchScorer(MatchScorer)public SortOptions.Builder setMatchScorer(RescoringMatchScorer.Builder builder)
RescoringMatchScorer built from the
builder.builder - a builder of a RescoringMatchScorersetMatchScorer(MatchScorer)public SortOptions.Builder addSortExpression(SortExpression sortExpression)
SortExpression to the list of sort expressions.sortExpression - an expression to sort documents bypublic SortOptions.Builder addSortExpression(SortExpression.Builder builder)
SortExpression built from the builder to the list of sort
expressions.builder - a builder of SortExpression to sort documents bypublic SortOptions build()
SortOptions from the set values.SortOptions built from the set values