Class AttributeFilter
- All Implemented Interfaces:
Serializable
,SdkPojo
,ToCopyableBuilder<AttributeFilter.Builder,
AttributeFilter>
Filters the search results based on document attributes or fields.
You can filter results using attributes for your particular documents. The attributes must exist in your index. For
example, if your documents include the custom attribute "Department", you can filter documents that belong to the
"HR" department. You would use the EqualsTo
operation to filter results or documents with "Department"
equals to "HR".
You can use AndAllFilters
and AndOrFilters
in combination with each other or with other
operations such as EqualsTo
. For example:
AndAllFilters
-
EqualsTo
: "Department", "HR" -
AndOrFilters
-
ContainsAny
: "Project Name", ["new hires", "new hiring"]
-
This example filters results or documents that belong to the HR department and belong to projects that contain
"new hires" or "new hiring" in the project name (must use ContainAny
with
StringListValue
). This example is filtering with a depth of 2.
You cannot filter more than a depth of 2, otherwise you receive a ValidationException
exception with the
message "AttributeFilter cannot have a depth of more than 2." Also, if you use more than 10 attribute filters in a
given list for AndAllFilters
or OrAllFilters
, you receive a
ValidationException
with the message "AttributeFilter cannot have a length of more than 10".
For examples of using AttributeFilter
, see Using document attributes to
filter search results.
- See Also:
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal List
<AttributeFilter> Performs a logicalAND
operation on all filters that you specify.static AttributeFilter.Builder
builder()
final DocumentAttribute
Returns true when a document contains all of the specified document attributes/fields.final DocumentAttribute
Returns true when a document contains any of the specified document attributes/fields.final boolean
final boolean
equalsBySdkFields
(Object obj) Indicates whether some other object is "equal to" this one by SDK fields.final DocumentAttribute
equalsTo()
Performs an equals operation on document attributes/fields and their values.final <T> Optional
<T> getValueForField
(String fieldName, Class<T> clazz) final DocumentAttribute
Performs a greater than operation on document attributes/fields and their values.final DocumentAttribute
Performs a greater or equals than operation on document attributes/fields and their values.final boolean
For responses, this returns true if the service returned a value for the AndAllFilters property.final int
hashCode()
final boolean
For responses, this returns true if the service returned a value for the OrAllFilters property.final DocumentAttribute
lessThan()
Performs a less than operation on document attributes/fields and their values.final DocumentAttribute
Performs a less than or equals operation on document attributes/fields and their values.final AttributeFilter
Performs a logicalNOT
operation on all filters that you specify.final List
<AttributeFilter> Performs a logicalOR
operation on all filters that you specify.static Class
<? extends AttributeFilter.Builder> Take this object and create a builder that contains all of the current property values of this object.final String
toString()
Returns a string representation of this object.Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
Method Details
-
hasAndAllFilters
public final boolean hasAndAllFilters()For responses, this returns true if the service returned a value for the AndAllFilters property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
andAllFilters
Performs a logical
AND
operation on all filters that you specify.Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasAndAllFilters()
method.- Returns:
- Performs a logical
AND
operation on all filters that you specify.
-
hasOrAllFilters
public final boolean hasOrAllFilters()For responses, this returns true if the service returned a value for the OrAllFilters property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
orAllFilters
Performs a logical
OR
operation on all filters that you specify.Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasOrAllFilters()
method.- Returns:
- Performs a logical
OR
operation on all filters that you specify.
-
notFilter
Performs a logical
NOT
operation on all filters that you specify.- Returns:
- Performs a logical
NOT
operation on all filters that you specify.
-
equalsTo
Performs an equals operation on document attributes/fields and their values.
- Returns:
- Performs an equals operation on document attributes/fields and their values.
-
containsAll
Returns true when a document contains all of the specified document attributes/fields. This filter is only applicable to StringListValue .
- Returns:
- Returns true when a document contains all of the specified document attributes/fields. This filter is only applicable to StringListValue.
-
containsAny
Returns true when a document contains any of the specified document attributes/fields. This filter is only applicable to StringListValue .
- Returns:
- Returns true when a document contains any of the specified document attributes/fields. This filter is only applicable to StringListValue.
-
greaterThan
Performs a greater than operation on document attributes/fields and their values. Use with the document attribute type
Date
orLong
.- Returns:
- Performs a greater than operation on document attributes/fields and their values. Use with the document
attribute type
Date
orLong
.
-
greaterThanOrEquals
Performs a greater or equals than operation on document attributes/fields and their values. Use with the document attribute type
Date
orLong
.- Returns:
- Performs a greater or equals than operation on document attributes/fields and their values. Use with the
document
attribute type
Date
orLong
.
-
lessThan
Performs a less than operation on document attributes/fields and their values. Use with the document attribute type
Date
orLong
.- Returns:
- Performs a less than operation on document attributes/fields and their values. Use with the document
attribute type
Date
orLong
.
-
lessThanOrEquals
Performs a less than or equals operation on document attributes/fields and their values. Use with the document attribute type
Date
orLong
.- Returns:
- Performs a less than or equals operation on document attributes/fields and their values. Use with the document
attribute type
Date
orLong
.
-
toBuilder
Description copied from interface:ToCopyableBuilder
Take this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilder
in interfaceToCopyableBuilder<AttributeFilter.Builder,
AttributeFilter> - Returns:
- a builder for type T
-
builder
-
serializableBuilderClass
-
hashCode
public final int hashCode() -
equals
-
equalsBySdkFields
Description copied from interface:SdkPojo
Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in anSdkPojo
class, and is generated based on a service model.If an
SdkPojo
class does not have any inherited fields,equalsBySdkFields
andequals
are essentially the same.- Specified by:
equalsBySdkFields
in interfaceSdkPojo
- Parameters:
obj
- the object to be compared with- Returns:
- true if the other object equals to this object by sdk fields, false otherwise.
-
toString
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value. -
getValueForField
-
sdkFields
-