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