# SearchResult.Builder

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

*** ** * ** ***


```
public final class SearchResult.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/appsearch/app/SearchResult` objects.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#Builder(java.lang.String,java.lang.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html packageName, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html databaseName)` Constructs a new builder for `https://developer.android.com/reference/androidx/appsearch/app/SearchResult` objects. |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder` | `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#addInformationalRankingSignal(double)(double rankingSignal)` Adds the informational ranking signal of the matched document in this SearchResult. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder` | `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#addJoinedResult(androidx.appsearch.app.SearchResult)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult joinedResult)` Adds a `https://developer.android.com/reference/androidx/appsearch/app/SearchResult` that was joined by the `https://developer.android.com/reference/androidx/appsearch/app/JoinSpec`. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder` | `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#addMatchInfo(androidx.appsearch.app.SearchResult.MatchInfo)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.MatchInfo matchInfo)` Adds another match to this SearchResult. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult` | `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#build()()` Constructs a new `https://developer.android.com/reference/androidx/appsearch/app/SearchResult`. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder` | `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#setDocument(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html document)` Sets the document which matched. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder` | `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#setGenericDocument(androidx.appsearch.app.GenericDocument)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/GenericDocument document)` Sets the document which matched. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder` | `@https://developer.android.com/reference/androidx/appsearch/app/ExperimentalAppSearchApi https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#setParentTypeMap(java.util.Map<java.lang.String,java.util.List<java.lang.String>>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html>> parentTypeMap)` Sets the map from schema type names to the list of their parent types. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder` | `https://developer.android.com/reference/androidx/appsearch/app/SearchResult.Builder#setRankingSignal(double)(double rankingSignal)` Sets the ranking signal of the matched document in this SearchResult. |

## Public constructors

### Builder

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

```
public Builder(@NonNull String packageName, @NonNull String databaseName)
```

Constructs a new builder for `https://developer.android.com/reference/androidx/appsearch/app/SearchResult` objects.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html packageName` | the package name the matched document belongs to |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html databaseName` | the database name the matched document belongs to. |

## Public methods

### addInformationalRankingSignal

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

```
public @NonNull SearchResult.Builder addInformationalRankingSignal(double rankingSignal)
```

Adds the informational ranking signal of the matched document in this SearchResult.

### addJoinedResult

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

```
public @NonNull SearchResult.Builder addJoinedResult(@NonNull SearchResult joinedResult)
```

Adds a `https://developer.android.com/reference/androidx/appsearch/app/SearchResult` that was joined by the `https://developer.android.com/reference/androidx/appsearch/app/JoinSpec`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/app/SearchResult joinedResult` | The joined SearchResult to add. |

### addMatchInfo

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

```
public @NonNull SearchResult.Builder addMatchInfo(@NonNull SearchResult.MatchInfo matchInfo)
```

Adds another match to this SearchResult.

### build

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

```
public @NonNull SearchResult build()
```

Constructs a new `https://developer.android.com/reference/androidx/appsearch/app/SearchResult`.

### setDocument

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

```
public @NonNull SearchResult.Builder setDocument(@NonNull Object document)
```

Sets the document which matched.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html document` | An instance of a class annotated with `https://developer.android.com/reference/androidx/appsearch/annotation/Document`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/appsearch/exceptions/AppSearchException` | if an error occurs converting a document class into a `https://developer.android.com/reference/androidx/appsearch/app/GenericDocument`. |

### setGenericDocument

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

```
public @NonNull SearchResult.Builder setGenericDocument(@NonNull GenericDocument document)
```

Sets the document which matched.

### setParentTypeMap

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

```
@ExperimentalAppSearchApi
public @NonNull SearchResult.Builder setParentTypeMap(@NonNull Map<String, List<String>> parentTypeMap)
```

Sets the map from schema type names to the list of their parent types.

The map should include entries for the `https://developer.android.com/reference/androidx/appsearch/app/GenericDocument`'s own type and all of the nested documents' types.

Child types must appear before parent types in each list. Otherwise, the `https://developer.android.com/reference/androidx/appsearch/app/GenericDocument#toDocumentClass(java.lang.Class<T>,androidx.appsearch.app.DocumentClassMappingContext)` method may not correctly identify the most concrete type. This could lead to unintended deserialization into a more general type instead of a more specific type.

Parent types should include transitive parents.

### setRankingSignal

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

```
public @NonNull SearchResult.Builder setRankingSignal(double rankingSignal)
```

Sets the ranking signal of the matched document in this SearchResult.