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) Summary: [Nested Classes](https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#nestedclasses) \| [Constants](https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#constants) \| [Inherited Constants](https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#inhconstants) \| [Fields](https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#lfields) \| [Methods](https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#inhmethods)

# SearchSuggestionSpec

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/app/appsearch/SearchSuggestionSpec "View this page in Kotlin") \|Java


`
public

final

class
SearchSuggestionSpec
`


`

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


`

`


implements

https://developer.android.com/reference/android/os/Parcelable


`

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

<br />

*** ** * ** ***

This class represents the specification logic for AppSearch. It can be used to set the filter and
settings of search a suggestions.
**See also:**

- `https://developer.android.com/reference/android/app/appsearch/AppSearchSession#searchSuggestion(java.lang.String,%20android.app.appsearch.SearchSuggestionSpec,%20java.util.concurrent.Executor,%20java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.List<android.app.appsearch.SearchSuggestionResult>>>)`

## Summary

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

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#SUGGESTION_RANKING_STRATEGY_DOCUMENT_COUNT` Ranked by the document count that contains the term. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#SUGGESTION_RANKING_STRATEGY_NONE` No Ranking, results are returned in arbitrary order. |
| `int` | `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#SUGGESTION_RANKING_STRATEGY_TERM_FREQUENCY` Ranked by the term appear frequency. |

| ### Inherited constants |
|---|
| From interface `https://developer.android.com/reference/android/os/Parcelable` |---|---| | `int` | `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor. | | `int` | `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`". | |

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec>` | `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#CREATOR` |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| ` https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>>` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#getFilterDocumentIds()() ` Returns the map of namespace and target document ids to search over. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#getFilterNamespaces()() ` Returns the list of namespaces to search over. |
| ` https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>>` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#getFilterProperties()() ` Returns the map of schema and target properties to search over. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#getFilterSchemas()() ` Returns the list of schema to search the suggestion over. |
| ` int` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#getMaximumResultCount()() ` Returns the maximum number of wanted suggestion that will be returned in the result object. |
| ` int` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#getRankingStrategy()() ` Returns the ranking strategy. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#getSearchStringParameters()() ` Returns the list of String parameters that can be referenced in the query through the "getSearchStringParameter({index})" function. |
| ` void` | ` https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Flatten this object in to a Parcel. |

| ### Inherited methods |
|---|---|
| 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*. | ||
| From interface ` https://developer.android.com/reference/android/os/Parcelable ` |---|---| | ` abstract int` | ` https://developer.android.com/reference/android/os/Parcelable#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. | | ` abstract void` | ` https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Flatten this object in to a Parcel. | ||

## Constants

### SUGGESTION_RANKING_STRATEGY_DOCUMENT_COUNT

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 SUGGESTION_RANKING_STRATEGY_DOCUMENT_COUNT
```

Ranked by the document count that contains the term.

Suppose the following document is in the index.

```
Doc1 contains: term1 term2 term2 term2
```

```
Doc2 contains: term1
```

Then, suppose that a search suggestion for "t" is issued with the DOCUMENT_COUNT, the
returned `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionResult`s will be: term1, term2. The term1 will have higher
score and appear in the results first.

<br />

Constant Value:

0
(0x00000000)


### SUGGESTION_RANKING_STRATEGY_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 SUGGESTION_RANKING_STRATEGY_NONE
```

No Ranking, results are returned in arbitrary order.

<br />

Constant Value:

2
(0x00000002)


### SUGGESTION_RANKING_STRATEGY_TERM_FREQUENCY

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 SUGGESTION_RANKING_STRATEGY_TERM_FREQUENCY
```

Ranked by the term appear frequency.

Suppose the following document is in the index.

```
Doc1 contains: term1 term2 term2 term2
```

```
Doc2 contains: term1
```

Then, suppose that a search suggestion for "t" is issued with the TERM_FREQUENCY, the
returned `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionResult`s will be: term2, term1. The term2 will have higher
score and appear in the results first.

<br />

Constant Value:

1
(0x00000001)


## Fields

### CREATOR

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

```
public static final Creator<SearchSuggestionSpec> CREATOR
```

<br />

<br />

## Public methods

### describeContents

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

```
public int describeContents ()
```

Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`,
the return value of this method must include the
`https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` bit.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### getFilterDocumentIds

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 Map<String, List<String>> getFilterDocumentIds ()
```

Returns the map of namespace and target document ids to search over.

The keys of the returned map are namespaces, and the values are the target document ids in
that namespace to search over.

If `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec.Builder#addFilterDocumentIds(java.lang.String,%20java.lang.String[])` was never called, returns an empty map. In this
case AppSearch will search over all namespace and document ids.

Calling this function repeatedly is inefficient. Prefer to retain the Map returned by this
function, rather than calling it multiple times.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>>` | This value cannot be `null`. <br /> |

### getFilterNamespaces

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 List<String> getFilterNamespaces ()
```

Returns the list of namespaces to search over.

If empty, will search over all namespaces.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | This value cannot be `null`. <br /> |

### getFilterProperties

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

```
public Map<String, List<String>> getFilterProperties ()
```

Returns the map of schema and target properties to search over.

The keys of the returned map are schema types, and the values are the target property path
in that schema to search over.

If `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec.Builder#addFilterPropertyPaths(java.lang.String,%20java.util.Collection<android.app.appsearch.PropertyPath>)` was never called, returns an empty map. In this
case AppSearch will search over all schemas and properties.

Calling this function repeatedly is inefficient. Prefer to retain the Map returned by this
function, rather than calling it multiple times.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>>` | This value cannot be `null`. <br /> |

### getFilterSchemas

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 List<String> getFilterSchemas ()
```

Returns the list of schema to search the suggestion over.

If empty, will search over all schemas.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | This value cannot be `null`. <br /> |

### getMaximumResultCount

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 getMaximumResultCount ()
```

Returns the maximum number of wanted suggestion that will be returned in the result object.

<br />

| Returns ||
|---|---|
| `int` | <br /> |

### getRankingStrategy

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 getRankingStrategy ()
```

Returns the ranking strategy.

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#SUGGESTION_RANKING_STRATEGY_NONE` - `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#SUGGESTION_RANKING_STRATEGY_DOCUMENT_COUNT` - `https://developer.android.com/reference/android/app/appsearch/SearchSuggestionSpec#SUGGESTION_RANKING_STRATEGY_TERM_FREQUENCY` |

### getSearchStringParameters

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

```
public List<String> getSearchStringParameters ()
```

Returns the list of String parameters that can be referenced in the query through the
"getSearchStringParameter({index})" function.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/AppSearchSession#search(java.lang.String,%20android.app.appsearch.SearchSpec)`

### writeToParcel

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

```
public void writeToParcel (Parcel dest, 
                int flags)
```

Flatten this object in to a Parcel.

<br />

| Parameters ||
|---|---|
| `dest` | `Parcel`: This value cannot be `null`. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |