Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#nestedclasses) \| [Constants](https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#constants) \| [Inherited Constants](https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#inhconstants) \| [Methods](https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#inhmethods)

# AppSearchSchema.StringPropertyConfig

*** ** * ** ***


`
public
static
final

class
AppSearchSchema.StringPropertyConfig
`


`


`

`

extends https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig


`

`


`

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [android.app.appsearch.AppSearchSchema.PropertyConfig](https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig) ||
|   | ↳ | android.app.appsearch.AppSearchSchema.StringPropertyConfig |

<br />

*** ** * ** ***

Configuration for a property of type String in a Document.

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig.Builder` Builder for `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig`. |

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#DELETE_PROPAGATION_TYPE_NONE` Does not propagate deletion. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#DELETE_PROPAGATION_TYPE_PROPAGATE_FROM` Content in this string property will be used as a qualified id referring to another (parent) document, and the deletion of the referenced document will propagate to this (child) document. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS` Content in this property should only be returned for queries matching the exact tokens appearing in this property. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_NONE` Content in this property will not be tokenized or indexed. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES` Content in this property should be returned for queries that are either exact matches or query matches of the tokens appearing in this property. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_NONE` Content in this property is not joinable. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_QUALIFIED_ID` Content in this string property will be used as a qualified id to join documents. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_NONE` This value indicates that no tokens should be extracted from this property. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_PLAIN` Tokenization for plain text. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_RFC822` Tokenization for emails. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_VERBATIM` This value indicates that no normalization or segmentation should be applied to string values that are tokenized using this type. |

### Inherited constants

From class `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig` `int` `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#CARDINALITY_OPTIONAL`

Zero or one value \[0,1\].


`int` `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#CARDINALITY_REPEATED`

Any number of items (including zero) \[0...\*\].


`int` `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#CARDINALITY_REQUIRED`

Exactly one value \[1\].


| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getDeletePropagationType()() ` Returns how the deletion will be propagated between this document and the referenced document whose qualified id is held by this property. |
| ` int` | ` https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getIndexingType()() ` Returns how the property is indexed. |
| ` int` | ` https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getJoinableValueType()() ` Returns how this property is going to be used to join documents from other schema types. |
| ` int` | ` https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getTokenizerType()() ` Returns how this property is tokenized (split into words). |

### Inherited methods

From class `

https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig

` `


boolean` `
https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object other)
`

Indicates whether some other object is "equal to" this one.


`


int` `
https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#getCardinality()()
`

Returns the cardinality of the property (whether it is optional, required or repeated).


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#getDescription()()
`

Returns a natural language description of this property.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#getName()()
`

Returns the name of this property.


`


int` `
https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#hashCode()()
`

Returns a hash code value for the object.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#toString()()
`

Returns a string representation of the object.


From class `

https://developer.android.com/reference/java/lang/Object

` `


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/java/lang/Object#clone()()
`

Creates and returns a copy of this object.


`


boolean` `
https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj)
`

Indicates whether some other object is "equal to" this one.


`


void` `
https://developer.android.com/reference/java/lang/Object#finalize()()
`

Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.


`


final

https://developer.android.com/reference/java/lang/Class<?>` `
https://developer.android.com/reference/java/lang/Object#getClass()()
`

Returns the runtime class of this `Object`.


`


int` `
https://developer.android.com/reference/java/lang/Object#hashCode()()
`

Returns a hash code value for the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notify()()
`

Wakes up a single thread that is waiting on this object's
monitor.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notifyAll()()
`

Wakes up all threads that are waiting on this object's monitor.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Object#toString()()
`

Returns a string representation of the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait()()
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*.


## Constants

### DELETE_PROPAGATION_TYPE_NONE

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)  
Also in [T Extensions 24](https://developer.android.com/sdkExtensions)

```
public static final int DELETE_PROPAGATION_TYPE_NONE
```

Does not propagate deletion.

<br />

Constant Value:

0
(0x00000000)


### DELETE_PROPAGATION_TYPE_PROPAGATE_FROM

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)  
Also in [T Extensions 24](https://developer.android.com/sdkExtensions)

```
public static final int DELETE_PROPAGATION_TYPE_PROPAGATE_FROM
```

Content in this string property will be used as a qualified id referring to another
(parent) document, and the deletion of the referenced document will propagate to this
(child) document.

Please note that this propagates further. If the child document has any children that
also set delete propagation type PROPAGATE_FROM for their joinable properties, then those
(grandchild) documents will be deleted.

Since delete propagation works between the document and the referenced document, if
setting this type for delete propagation, the string property should also be qualified id
joinable (i.e. having `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_QUALIFIED_ID` for
the joinable value type). Otherwise, throw `https://developer.android.com/reference/java/lang/IllegalStateException` when building
(see `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig.Builder#build()`).

<br />

Constant Value:

1
(0x00000001)


### INDEXING_TYPE_EXACT_TERMS

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INDEXING_TYPE_EXACT_TERMS
```

Content in this property should only be returned for queries matching the exact tokens
appearing in this property.

For example, a property with "fool" should NOT match a query for "foo".

<br />

Constant Value:

1
(0x00000001)


### INDEXING_TYPE_NONE

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INDEXING_TYPE_NONE
```

Content in this property will not be tokenized or indexed.

<br />

Constant Value:

0
(0x00000000)


### INDEXING_TYPE_PREFIXES

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INDEXING_TYPE_PREFIXES
```

Content in this property should be returned for queries that are either exact matches or
query matches of the tokens appearing in this property.

For example, a property with "fool" **should** match a query for "foo".

<br />

Constant Value:

2
(0x00000002)


### JOINABLE_VALUE_TYPE_NONE

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 7](https://developer.android.com/sdkExtensions)

```
public static final int JOINABLE_VALUE_TYPE_NONE
```

Content in this property is not joinable.

<br />

Constant Value:

0
(0x00000000)


### JOINABLE_VALUE_TYPE_QUALIFIED_ID

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 7](https://developer.android.com/sdkExtensions)

```
public static final int JOINABLE_VALUE_TYPE_QUALIFIED_ID
```

Content in this string property will be used as a qualified id to join documents.

- Qualified id: a unique identifier for a document, and this joinable value type is similar to primary and foreign key in relational database. See `https://developer.android.com/reference/android/app/appsearch/util/DocumentIdUtil` for more details.
- Currently we only support single string joining, so it should only be used with `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#CARDINALITY_OPTIONAL` and `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.PropertyConfig#CARDINALITY_REQUIRED`.

<br />

<br />

Constant Value:

1
(0x00000001)


### TOKENIZER_TYPE_NONE

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TOKENIZER_TYPE_NONE
```

This value indicates that no tokens should be extracted from this property.

It is only valid for tokenizer_type to be 'NONE' if `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getIndexingType()` is `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_NONE`.

<br />

Constant Value:

0
(0x00000000)


### TOKENIZER_TYPE_PLAIN

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TOKENIZER_TYPE_PLAIN
```

Tokenization for plain text. This value indicates that tokens should be extracted from
this property based on word breaks. Segments of whitespace and punctuation are not
considered tokens.

For example, a property with "foo bar. baz." will produce tokens for "foo", "bar" and
"baz". The segments " " and "." will not be considered tokens.

It is only valid for tokenizer_type to be 'PLAIN' if `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getIndexingType()` is
`https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS` or `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES`.

<br />

Constant Value:

1
(0x00000001)


### TOKENIZER_TYPE_RFC822

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 7](https://developer.android.com/sdkExtensions)

```
public static final int TOKENIZER_TYPE_RFC822
```

Tokenization for emails. This value indicates that tokens should be extracted from this
property based on email structure.

For example, a property with "alex.sav@google.com" will produce tokens for "alex",
"sav", "alex.sav", "google", "com", and "alexsav@google.com"

It is only valid for tokenizer_type to be 'RFC822' if `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getIndexingType()` is
`https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS` or `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES`.

<br />

Constant Value:

3
(0x00000003)


### TOKENIZER_TYPE_VERBATIM

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 7](https://developer.android.com/sdkExtensions)

```
public static final int TOKENIZER_TYPE_VERBATIM
```

This value indicates that no normalization or segmentation should be applied to string
values that are tokenized using this type. Therefore, the output token is equivalent to
the raw string value.

For example, a property with "Hello, world!" will produce the token "Hello, world!",
preserving punctuation and capitalization, and not creating separate tokens between the
space.

It is only valid for tokenizer_type to be 'VERBATIM' if `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#getIndexingType()` is
`https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS` or `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES`.

<br />

Constant Value:

2
(0x00000002)


## Public methods

### getDeletePropagationType

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)  
Also in [T Extensions 24](https://developer.android.com/sdkExtensions)

```
public int getDeletePropagationType ()
```

Returns how the deletion will be propagated between this document and the referenced
document whose qualified id is held by this property.

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#DELETE_PROPAGATION_TYPE_NONE` - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#DELETE_PROPAGATION_TYPE_PROPAGATE_FROM` |

### getIndexingType

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getIndexingType ()
```

Returns how the property is indexed.

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_NONE` - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS` - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES` |

### getJoinableValueType

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 7](https://developer.android.com/sdkExtensions)

```
public int getJoinableValueType ()
```

Returns how this property is going to be used to join documents from other schema types.

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_NONE` - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_QUALIFIED_ID` |

### getTokenizerType

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getTokenizerType ()
```

Returns how this property is tokenized (split into words).

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_NONE` - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_PLAIN` - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_VERBATIM` - `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_RFC822` |