Document.StringProperty


@Documented
@Retention(value = RetentionPolicy.CLASS)
@Target(value = [ElementType.FIELD, ElementType.METHOD])
public annotation Document.StringProperty


Configures a string member field of a class as a property known to AppSearch.

Summary

Nested types

Public methods

abstract int

Configures how a property should be indexed so that it can be retrieved by queries.

abstract int

Configures how a property should be processed so that the document can be joined.

abstract String

The name of this property.

abstract boolean

Configures whether this property must be specified for the document to be valid.

abstract Class<StringSerializer<Object>>

Configures how a property should be converted to and from a String.

abstract int

Configures how tokens should be extracted from this property.

Public methods

indexingType

Added in 1.1.0-alpha06
public abstract int indexingType()

Configures how a property should be indexed so that it can be retrieved by queries.

If not specified, defaults to INDEXING_TYPE_NONE (the field will not be indexed and cannot be queried).

joinableValueType

Added in 1.1.0-alpha06
public abstract int joinableValueType()

Configures how a property should be processed so that the document can be joined.

Properties configured with JOINABLE_VALUE_TYPE_QUALIFIED_ID enable the documents to be joined with other documents that have the same qualified ID as the value of this field. (A qualified ID is a compact representation of the tuple that uniquely identifies a document indexed in the AppSearch storage backend.) This property name can be specified as the child property expression in for join operations.

This attribute doesn't apply to properties of a repeated type (e.g., a list).

If not specified, defaults to JOINABLE_VALUE_TYPE_NONE, which means the property can not be used in a child property expression to configure a (.

name

Added in 1.1.0-alpha06
public abstract String name()

The name of this property. This string is used to query against this property.

If not specified, the name of the field in the code will be used instead.

required

Added in 1.1.0-alpha06
public abstract boolean required()

Configures whether this property must be specified for the document to be valid.

This attribute does not apply to properties of a repeated type (e.g. a list).

Please make sure you understand the consequences of required fields on schema migration before setting this attribute to true.

serializer

Added in 1.1.0-alpha06
public abstract Class<StringSerializer<Object>> serializer()

Configures how a property should be converted to and from a String.

Useful for representing properties using rich types that boil down to simple string values in the database.

The referenced class must have a public zero params constructor.

For example:


public final class MyEntity {

    = SomeRichTypeSerializer.class)
    public SomeRichType getMyProperty();

    public final class SomeRichTypeSerializer implements StringSerializer<SomeRichType> {

      
      
      public String serialize(@NonNull SomeRichType instance) {...}

      
      
      public SomeRichType deserialize(@NonNull String string) {...}
    }
}

tokenizerType

Added in 1.1.0-alpha06
public abstract int tokenizerType()

Configures how tokens should be extracted from this property.

If not specified, defaults to TOKENIZER_TYPE_PLAIN (the field will be tokenized along word boundaries as plain text).