Class SortExpression


  • public final class SortExpression
    extends Object
    Sorting specification for a single dimension. Multi-dimensional sorting is supported by a collection of SortExpressions.
    • Field Detail

      • DOCUMENT_ID_FIELD_NAME

        public static final String DOCUMENT_ID_FIELD_NAME
        The expression to be used if you wish to sort by document id field Document.getId(). You need to create a sort expression as
        
         SortExpression expr = SortExpression.newBuilder()
             .setExpression(SortExpression.DOCUMENT_ID_FIELD_NAME)
             .setDefaultValue("")
             .build();
         
        See Also:
        Constant Field Values
      • LANGUAGE_FIELD_NAME

        public static final String LANGUAGE_FIELD_NAME
        The expression to be used if you wish to sort by language code associated with the locale field Document.getLocale(). You need to create a sort expression as
        
         SortExpression expr = SortExpression.newBuilder()
             .setExpression(SortExpression.LANGUAGE_FIELD_NAME)
             .setDefaultValue("")
             .build();
         
        See Also:
        Constant Field Values
      • RANK_FIELD_NAME

        public static final String RANK_FIELD_NAME
        The expression to be used if you wish to sort by rank field. By default, results are sorted in descending value of rank. To sort in ascending order, you need to create a sort expression as
        
         SortExpression expr = SortExpression.newBuilder()
             .setExpression(SortExpression.RANK_FIELD_NAME)
             .setDirection(SortExpression.SortDirection.ASCENDING)
             .setDefaultValueNumeric(0)
             .build();
         
        See Also:
        Constant Field Values
      • SCORE_FIELD_NAME

        public static final String SCORE_FIELD_NAME
        The expression to be used if you wish to sort by document score. You need to create a sort expression as
        
         SortExpression expr = SortExpression.newBuilder()
             .setExpression(String.format(
                 "%s + rating * 0.01", SortExpression.SCORE_FIELD_NAME))
             .setDirection(SortExpression.SortDirection.DESCENDING)
             .setDefaultValueNumeric(0)
             .build();
         
        See Also:
        Constant Field Values
      • TIMESTAMP_FIELD_NAME

        public static final String TIMESTAMP_FIELD_NAME
        The expression to be used if you wish to sort by seconds since EPOCH that the document was written. You need to create a sort expression as
        
         SortExpression expr = SortExpression.newBuilder()
             .setExpression(SortExpression.TIMESTAMP_FIELD_NAME)
             .setDefaultValueNumeric(0)
             .build();
         
        See Also:
        Constant Field Values
    • Method Detail

      • getExpression

        public String getExpression()
        Returns:
        the expression to evaluate for each document and sort by
      • getDefaultValue

        public String getDefaultValue()
        Returns:
        the default value for the field. Can be null
      • getDefaultValueNumeric

        public Double getDefaultValueNumeric()
        Returns:
        the default numeric value for the field. Can be null
      • getDefaultValueDate

        public Date getDefaultValueDate()
        Returns:
        the default date value for the field. Can be null