Class FieldSortBuilder

    • Field Detail

      • SORT_MODE

        public static final ParseField SORT_MODE
      • UNMAPPED_TYPE

        public static final ParseField UNMAPPED_TYPE
      • NUMERIC_TYPE

        public static final ParseField NUMERIC_TYPE
      • DOC_FIELD_NAME

        public static final java.lang.String DOC_FIELD_NAME
        special field name to sort by index order
        See Also:
        Constant Field Values
    • Constructor Detail

      • FieldSortBuilder

        public FieldSortBuilder​(FieldSortBuilder template)
        Copy constructor.
      • FieldSortBuilder

        public FieldSortBuilder​(java.lang.String fieldName)
        Constructs a new sort based on a document field.
        Parameters:
        fieldName - The field name.
      • FieldSortBuilder

        public FieldSortBuilder​(StreamInput in)
                         throws java.io.IOException
        Read from a stream.
        Throws:
        java.io.IOException
    • Method Detail

      • writeTo

        public void writeTo​(StreamOutput out)
                     throws java.io.IOException
        Description copied from interface: Writeable
        Write this into the StreamOutput.
        Throws:
        java.io.IOException
      • getFieldName

        public java.lang.String getFieldName()
        Returns the document field this sort should be based on.
      • missing

        public FieldSortBuilder missing​(java.lang.Object missing)
        Sets the value when a field is missing in a doc. Can also be set to _last or _first to sort missing last or first respectively.
      • missing

        public java.lang.Object missing()
        Returns the value used when a field is missing in a doc.
      • unmappedType

        public FieldSortBuilder unmappedType​(java.lang.String type)
        Set the type to use in case the current field is not mapped in an index. Specifying a type tells Elasticsearch what type the sort values should have, which is important for cross-index search, if there are sort fields that exist on some indices only. If the unmapped type is null then query execution will fail if one or more indices don't have a mapping for the current field.
      • unmappedType

        public java.lang.String unmappedType()
        Returns the type to use in case the current field is not mapped in an index.
      • sortMode

        public FieldSortBuilder sortMode​(SortMode sortMode)
        Defines what values to pick in the case a document contains multiple values for the targeted sort field. Possible values: min, max, sum and avg

        The last two values are only applicable for number based fields.

      • sortMode

        public SortMode sortMode()
        Returns what values to pick in the case a document contains multiple values for the targeted sort field.
      • setNestedPath

        @Deprecated
        public FieldSortBuilder setNestedPath​(java.lang.String nestedPath)
        Deprecated.
        set nested sort with setNestedSort(NestedSortBuilder) and retrieve with getNestedSort()
        Sets the nested path if sorting occurs on a field that is inside a nested object. By default when sorting on a field inside a nested object, the nearest upper nested object is selected as nested path.
      • getNestedPath

        @Deprecated
        public java.lang.String getNestedPath()
        Deprecated.
        set nested sort with setNestedSort(NestedSortBuilder) and retrieve with getNestedSort()
        Returns the nested path if sorting occurs in a field that is inside a nested object.
      • setNestedSort

        public FieldSortBuilder setNestedSort​(NestedSortBuilder nestedSort)
        Sets the NestedSortBuilder to be used for fields that are inside a nested object. The NestedSortBuilder takes a `path` argument and an optional nested filter that the nested objects should match with in order to be taken into account for sorting.
      • getNumericType

        public java.lang.String getNumericType()
        Returns the numeric type that values should translated to or null if the original numeric type should be preserved.
      • setNumericType

        public FieldSortBuilder setNumericType​(java.lang.String numericType)
        Forces the numeric type to use for the field. The query will fail if this option is set on a field that is not mapped as a numeric in some indices. Specifying a numeric type tells Elasticsearch what type the sort values should have, which is important for cross-index search, if a field does not have the same type on all indices. Allowed values are long and double.
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getWriteableName

        public java.lang.String getWriteableName()
        Description copied from interface: NamedWriteable
        Returns the name of the writeable object
      • fromXContent

        public static FieldSortBuilder fromXContent​(XContentParser parser,
                                                    java.lang.String fieldName)
                                             throws java.io.IOException
        Creates a new FieldSortBuilder from the query held by the XContentParser in XContent format.
        Parameters:
        parser - the input parser. The state on the parser contained in this context will be changed as a side effect of this method call
        fieldName - in some sort syntax variations the field name precedes the xContent object that specifies further parameters, e.g. in '{ "foo": { "order" : "asc"} }'. When parsing the inner object, the field name can be passed in via this argument
        Throws:
        java.io.IOException
      • rewrite

        public FieldSortBuilder rewrite​(QueryRewriteContext ctx)
                                 throws java.io.IOException
        Description copied from interface: Rewriteable
        Rewrites this instance based on the provided context. The returned objects will be the same instance as this if no changes during the rewrite were applied.
        Throws:
        java.io.IOException