Package org.elasticsearch.search.sort
Class FieldSortBuilder
java.lang.Object
org.elasticsearch.search.sort.SortBuilder<FieldSortBuilder>
org.elasticsearch.search.sort.FieldSortBuilder
- All Implemented Interfaces:
NamedWriteable
,Writeable
,org.elasticsearch.common.xcontent.ToXContent
,org.elasticsearch.common.xcontent.ToXContentObject
,Rewriteable<SortBuilder<?>>
A sort builder to sort based on a document field.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.ToXContent.Params
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V>
-
Field Summary
Modifier and TypeFieldDescriptionstatic String
special field name to sort by index orderstatic org.elasticsearch.common.xcontent.ParseField
static org.elasticsearch.common.xcontent.ParseField
static String
static org.elasticsearch.common.xcontent.ParseField
static String
special field name to sort by index orderstatic org.elasticsearch.common.xcontent.ParseField
static org.elasticsearch.common.xcontent.ParseField
Fields inherited from class org.elasticsearch.search.sort.SortBuilder
NESTED_FILTER_FIELD, NESTED_PATH_FIELD, order, ORDER_FIELD
Fields inherited from interface org.elasticsearch.index.query.Rewriteable
MAX_REWRITE_ROUNDS
Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
-
Constructor Summary
ConstructorDescriptionFieldSortBuilder(String fieldName)
Constructs a new sort based on a document field.Read from a stream.FieldSortBuilder(FieldSortBuilder template)
Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionbuild(SearchExecutionContext context)
Create a SortFieldAndFormat from this builder.buildBucketedSort(SearchExecutionContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra)
Create a BucketedSort which is useful for sorting inside of aggregations.boolean
boolean
static FieldSortBuilder
fromXContent(org.elasticsearch.common.xcontent.XContentParser parser, String fieldName)
Returns the document field this sort should be based on.Returns the external format that is specified viasetFormat(String)
static MinAndMax<?>
getMinMaxOrNull(SearchExecutionContext context, FieldSortBuilder sortBuilder)
Deprecated.Deprecated.set nested sort withsetNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()
Returns theNestedSortBuilder
Returns the numeric type that values should translated to or null if the original numeric type should be preserved.static FieldSortBuilder
Return theFieldSortBuilder
if the primary sort in the providedsource
is an instance of this class, null otherwise.Returns the name of the writeable objectint
hashCode()
static boolean
Return true if the primary sort in the providedsource
is an instance ofFieldSortBuilder
.boolean
isBottomSortShardDisjoint(SearchExecutionContext context, SearchSortValuesAndFormats bottomSortValues)
Returns whether some values of the givenSearchExecutionContext.getIndexReader()
are within the primary sort value provided in thebottomSortValues
.missing()
Returns the value used when a field is missing in a doc.Sets the value when a field is missing in a doc.Rewrites this instance based on the provided context.Specifies a format specification that will be used to format the output value of this sort field.setNestedFilter(QueryBuilder nestedFilter)
Deprecated.set nested sort withsetNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()
setNestedPath(String nestedPath)
Deprecated.set nested sort withsetNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()
setNestedSort(NestedSortBuilder nestedSort)
Sets theNestedSortBuilder
to be used for fields that are inside a nested object.setNumericType(String numericType)
Forces the numeric type to use for the field.sortMode()
Returns what values to pick in the case a document contains multiple values for the targeted sort field.Defines what values to pick in the case a document contains multiple values for the targeted sort field.org.elasticsearch.common.xcontent.XContentBuilder
toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)
Returns the type to use in case the current field is not mapped in an index.unmappedType(String type)
Set the type to use in case the current field is not mapped in an index.void
writeTo(StreamOutput out)
Write this into the StreamOutput.Methods inherited from class org.elasticsearch.search.sort.SortBuilder
buildSort, fromXContent, order, order, parseNestedFilter, resolveNested, resolveNested, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject
isFragment
-
Field Details
-
NAME
- See Also:
- Constant Field Values
-
MISSING
public static final org.elasticsearch.common.xcontent.ParseField MISSING -
SORT_MODE
public static final org.elasticsearch.common.xcontent.ParseField SORT_MODE -
UNMAPPED_TYPE
public static final org.elasticsearch.common.xcontent.ParseField UNMAPPED_TYPE -
NUMERIC_TYPE
public static final org.elasticsearch.common.xcontent.ParseField NUMERIC_TYPE -
FORMAT
public static final org.elasticsearch.common.xcontent.ParseField FORMAT -
DOC_FIELD_NAME
special field name to sort by index order- See Also:
- Constant Field Values
-
SHARD_DOC_FIELD_NAME
special field name to sort by index order- See Also:
- Constant Field Values
-
-
Constructor Details
-
FieldSortBuilder
Copy constructor. -
FieldSortBuilder
Constructs a new sort based on a document field.- Parameters:
fieldName
- The field name.
-
FieldSortBuilder
Read from a stream.- Throws:
IOException
-
-
Method Details
-
writeTo
Description copied from interface:Writeable
Write this into the StreamOutput.- Throws:
IOException
-
getFieldName
Returns the document field this sort should be based on. -
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
Returns the value used when a field is missing in a doc. -
unmappedType
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 isnull
then query execution will fail if one or more indices don't have a mapping for the current field. -
unmappedType
Returns the type to use in case the current field is not mapped in an index. -
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 avgThe last two values are only applicable for number based fields.
-
sortMode
Returns what values to pick in the case a document contains multiple values for the targeted sort field. -
setNestedFilter
Deprecated.set nested sort withsetNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()
Sets the nested filter that the nested objects should match with in order to be taken into account for sorting. -
getNestedFilter
Deprecated.set nested sort withsetNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()
Returns the nested filter that the nested objects should match with in order to be taken into account for sorting. -
setNestedPath
Deprecated.set nested sort withsetNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()
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.set nested sort withsetNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()
Returns the nested path if sorting occurs in a field that is inside a nested object. -
getNestedSort
Returns theNestedSortBuilder
-
setNestedSort
Sets theNestedSortBuilder
to be used for fields that are inside a nested object. TheNestedSortBuilder
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
Returns the numeric type that values should translated to or null if the original numeric type should be preserved. -
setNumericType
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 arelong
,double
,date
anddate_nanos
. -
getFormat
Returns the external format that is specified viasetFormat(String)
-
setFormat
Specifies a format specification that will be used to format the output value of this sort field. Currently, only "date" and "data_nanos" date types support this external format (i.e., date format). -
toXContent
public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException- Throws:
IOException
-
build
Description copied from class:SortBuilder
Create a SortFieldAndFormat from this builder.- Specified by:
build
in classSortBuilder<FieldSortBuilder>
- Throws:
IOException
-
canRewriteToMatchNone
public boolean canRewriteToMatchNone() -
isBottomSortShardDisjoint
public boolean isBottomSortShardDisjoint(SearchExecutionContext context, SearchSortValuesAndFormats bottomSortValues) throws IOExceptionReturns whether some values of the givenSearchExecutionContext.getIndexReader()
are within the primary sort value provided in thebottomSortValues
.- Throws:
IOException
-
buildBucketedSort
public BucketedSort buildBucketedSort(SearchExecutionContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra) throws IOExceptionDescription copied from class:SortBuilder
Create a BucketedSort which is useful for sorting inside of aggregations.- Specified by:
buildBucketedSort
in classSortBuilder<FieldSortBuilder>
- Throws:
IOException
-
hasPrimaryFieldSort
Return true if the primary sort in the providedsource
is an instance ofFieldSortBuilder
. -
getPrimaryFieldSortOrNull
Return theFieldSortBuilder
if the primary sort in the providedsource
is an instance of this class, null otherwise. -
getMinMaxOrNull
public static MinAndMax<?> getMinMaxOrNull(SearchExecutionContext context, FieldSortBuilder sortBuilder) throws IOExceptionReturn theMinAndMax
indexed value from the providedFieldSortBuilder
ornull
if unknown. The value can be extracted on non-nested indexed mapped fields of type keyword, numeric or date, other fields and configurations returnnull
.- Throws:
IOException
-
equals
-
hashCode
public int hashCode() -
getWriteableName
Description copied from interface:NamedWriteable
Returns the name of the writeable object -
fromXContent
public static FieldSortBuilder fromXContent(org.elasticsearch.common.xcontent.XContentParser parser, String fieldName) throws IOException- Parameters:
parser
- the input parser. The state on the parser contained in this context will be changed as a side effect of this method callfieldName
- 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:
IOException
-
rewrite
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:
IOException
-
setNestedSort(NestedSortBuilder)
and retrieve withgetNestedSort()