Document.StringProperty


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


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

Summary

Public functions

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<Any!>!>!

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

abstract Int

Configures how tokens should be extracted from this property.

Public functions

indexingType

Added in 1.1.0-alpha06
abstract fun indexingType(): Int

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
abstract fun joinableValueType(): Int

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
abstract fun name(): String!

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
abstract fun required(): Boolean

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
abstract fun serializer(): Class<StringSerializer<Any!>!>!

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
abstract fun tokenizerType(): Int

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).