Package com.google.appengine.api.search
Class SortOptions.Builder
java.lang.Object
com.google.appengine.api.search.SortOptions.Builder
- Enclosing class:
SortOptions
A builder that constructs
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();
-
Method Summary
Modifier and TypeMethodDescriptionaddSortExpression(SortExpression sortExpression) Adds aSortExpressionto the list of sort expressions.addSortExpression(SortExpression.Builder builder) Adds aSortExpressionbuilt from the builder to the list of sort expressions.build()Builds aSortOptionsfrom the set values.setLimit(int limit) Sets the limit on the number of documents to score or sort.setMatchScorer(MatchScorer matchScorer) setMatchScorer(MatchScorer.Builder builder) Sets the matchScorer to theMatchScorerbuilt from the builder.Sets the matchScorer to theRescoringMatchScorerbuilt from the builder.
-
Method Details
-
setLimit
Sets the limit on the number of documents to score or sort.- Parameters:
limit- the maximum number of documents to score or sort- Returns:
- this builder
- Throws:
IllegalArgumentException- if the limit is out of range
-
setMatchScorer
Sets aMatchScorerorRescoringMatchScorerto base someSortExpressionson. The value of the matchScorer can be accessed by using the field name "_score".- Parameters:
matchScorer- the rescoring/match matchScorer to use in an expression built on "_score"- Returns:
- this builder
-
setMatchScorer
Sets the matchScorer to theMatchScorerbuilt from the builder.- Parameters:
builder- a builder of a MatchScorer- Returns:
- this builder
- See Also:
-
setMatchScorer
Sets the matchScorer to theRescoringMatchScorerbuilt from the builder.- Parameters:
builder- a builder of a RescoringMatchScorer- Returns:
- this builder
- See Also:
-
addSortExpression
Adds aSortExpressionto the list of sort expressions.- Parameters:
sortExpression- an expression to sort documents by- Returns:
- this Builder
-
addSortExpression
Adds aSortExpressionbuilt from the builder to the list of sort expressions.- Parameters:
builder- a builder of SortExpression to sort documents by- Returns:
- this Builder
-
build
Builds aSortOptionsfrom the set values.- Returns:
- a
SortOptionsbuilt from the set values
-