# AppSearchSchema.StringPropertyConfig

Artifact: [androidx.appsearch:appsearch](https://developer.android.com/jetpack/androidx/releases/appsearch) [View Source](https://cs.android.com/search?q=file:androidx/appsearch/app/AppSearchSchema.java+class:androidx.appsearch.app.AppSearchSchema.StringPropertyConfig) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

*** ** * ** ***


```
class AppSearchSchema.StringPropertyConfig : AppSearchSchema.PropertyConfig
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.appsearch.app.AppSearchSchema.PropertyConfig](https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig) ||
|   | ↳ | [androidx.appsearch.app.AppSearchSchema.StringPropertyConfig](https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig) |

*** ** * ** ***

Configuration for a property of type String in a Document.

## Summary

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

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/appsearch/app/ExperimentalAppSearchApi https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#DELETE_PROPAGATION_TYPE_NONE() = 0` Does not propagate deletion. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS() = 1` Content in this property should only be returned for queries matching the exact tokens appearing in this property. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_NONE() = 0` Content in this property will not be tokenized or indexed. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES() = 2` Content in this property should be returned for queries that are either exact matches or query matches of the tokens appearing in this property. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_NONE() = 0` Content in this property is not joinable. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = https://developer.android.com/reference/kotlin/androidx/appsearch/app/Features.JOIN_SPEC_AND_QUALIFIED_ID) https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_QUALIFIED_ID() = 1` Content in this string property will be used as a qualified id to join documents. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_NONE() = 0` This value indicates that no tokens should be extracted from this property. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_PLAIN() = 1` Tokenization for plain text. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = https://developer.android.com/reference/kotlin/androidx/appsearch/app/Features.TOKENIZER_TYPE_RFC822) https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_RFC822() = 3` Tokenization for emails. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = https://developer.android.com/reference/kotlin/androidx/appsearch/app/Features.VERBATIM_SEARCH) https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#TOKENIZER_TYPE_VERBATIM() = 2` This value indicates that no normalization or segmentation should be applied to string values that are tokenized using this type. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/appsearch/app/ExperimentalAppSearchApi https://developer.android.com/reference/kotlin/androidx/appsearch/app/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. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#getIndexingType()()` Returns how the property is indexed. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#getJoinableValueType()()` Returns how this property is going to be used to join documents from other schema types. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#getTokenizerType()()` Returns how this property is tokenized (split into words). |

### Inherited Constants

From [androidx.appsearch.app.AppSearchSchema.PropertyConfig](https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#CARDINALITY_OPTIONAL() = 2`

Zero or one value \[0,1\].
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#CARDINALITY_REPEATED() = 1`

Any number of items (including zero) \[0...\*\].
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#CARDINALITY_REQUIRED() = 3`

Exactly one value \[1\].

### Inherited functions

From [androidx.appsearch.app.AppSearchSchema.PropertyConfig](https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#equals(java.lang.Object)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#getCardinality()()`

Returns the cardinality of the property (whether it is optional, required or repeated).
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` `@https://developer.android.com/reference/kotlin/androidx/appsearch/app/ExperimentalAppSearchApi
https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#getDescription()()`

Returns a natural language description of this property.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#getName()()`

Returns the name of this property.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#hashCode()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#toString()()`

## Constants

### DELETE_PROPAGATION_TYPE_NONE

Added in [1.2.0-alpha02](https://developer.android.com/jetpack/androidx/releases/appsearch#1.2.0-alpha02)

```
@ExperimentalAppSearchApi
const val DELETE_PROPAGATION_TYPE_NONE = 0: Int
```

Does not propagate deletion.

### INDEXING_TYPE_EXACT_TERMS

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
const val INDEXING_TYPE_EXACT_TERMS = 1: Int
```

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

### INDEXING_TYPE_NONE

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
const val INDEXING_TYPE_NONE = 0: Int
```

Content in this property will not be tokenized or indexed.

### INDEXING_TYPE_PREFIXES

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
const val INDEXING_TYPE_PREFIXES = 2: Int
```

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

### JOINABLE_VALUE_TYPE_NONE

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
const val JOINABLE_VALUE_TYPE_NONE = 0: Int
```

Content in this property is not joinable.

### JOINABLE_VALUE_TYPE_QUALIFIED_ID

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.JOIN_SPEC_AND_QUALIFIED_ID)
const val JOINABLE_VALUE_TYPE_QUALIFIED_ID = 1: Int
```

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/kotlin/androidx/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/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#CARDINALITY_OPTIONAL()` and `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.PropertyConfig#CARDINALITY_REQUIRED()`.

### TOKENIZER_TYPE_NONE

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
const val TOKENIZER_TYPE_NONE = 0: Int
```

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/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#getIndexingType()` is `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_NONE()`.

### TOKENIZER_TYPE_PLAIN

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
const val TOKENIZER_TYPE_PLAIN = 1: Int
```

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/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#getIndexingType()` is `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS()` or `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES()`.

### TOKENIZER_TYPE_RFC822

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.TOKENIZER_TYPE_RFC822)
const val TOKENIZER_TYPE_RFC822 = 3: Int
```

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/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#getIndexingType()` is `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS()` or `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES()`.

### TOKENIZER_TYPE_VERBATIM

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.VERBATIM_SEARCH)
const val TOKENIZER_TYPE_VERBATIM = 2: Int
```

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/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#getIndexingType()` is `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_EXACT_TERMS()` or `https://developer.android.com/reference/kotlin/androidx/appsearch/app/AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_PREFIXES()`.

## Public functions

### getDeletePropagationType

Added in [1.2.0-alpha02](https://developer.android.com/jetpack/androidx/releases/appsearch#1.2.0-alpha02)

```
@ExperimentalAppSearchApi
fun getDeletePropagationType(): Int
```

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

### getIndexingType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
fun getIndexingType(): Int
```

Returns how the property is indexed.

### getJoinableValueType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
fun getJoinableValueType(): Int
```

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

### getTokenizerType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
fun getTokenizerType(): Int
```

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