# Class QueryOptions.Builder (5.0.3)

    public static final class QueryOptions.Builder

A builder which constructs QueryOptions objects.

## Inheritance

[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \> QueryOptions.Builder

## Inherited Members

[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) [Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) [Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) [Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) [Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) [Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) [Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) [Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) [Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) [Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) [Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)

## Methods

### addExpressionToReturn(FieldExpression expression)

    public QueryOptions.Builder addExpressionToReturn(FieldExpression expression)

Adds a [FieldExpression](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.FieldExpression) to return in search results.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `expression` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.FieldExpression` a named expression to compute and return in results |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### addExpressionToReturn(FieldExpression.Builder expressionBuilder)

    public QueryOptions.Builder addExpressionToReturn(FieldExpression.Builder expressionBuilder)

Adds a [FieldExpression](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.FieldExpression) build from the given
`expressionBuilder` to return in search results. Snippets will be
returned as fields with the same names in
[ScoredDocument#getExpressions()](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.ScoredDocument#com_google_appengine_api_search_ScoredDocument_getExpressions__).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `expressionBuilder` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.FieldExpression.Builder` a builder of named expressions to evaluate and return in results |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### build()

    public QueryOptions build()

Construct the final message.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions` | the QueryOptions built from the parameters entered on this Builder |

### clearNumberFoundAccuracy()

    public QueryOptions.Builder clearNumberFoundAccuracy()

Clears any accuracy requirement for [Results#getNumberFound()](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Results#com_google_appengine_api_search_Results_getNumberFound__).

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` |   |

### setCursor(Cursor cursor)

    public QueryOptions.Builder setCursor(Cursor cursor)

Sets the cursor. The cursor is obtained from either a
[Results](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Results) or one of the individual
[ScoredDocuments](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.ScoredDocument).

This is illustrated from the following code fragment:



     Cursor cursor = Cursor.newBuilder().build();

     SearchResults results = index.search(
         Query.newBuilder()
             .setOptions(QueryOptions.newBuilder()
                 .setLimit(20)
                 .setCursor(cursor)
                 .build())
             .build("some query"));

     // If the Cursor is built without setPerResult(true), then
     // by default a single https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Cursor is returned with the
     // https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Results.
     cursor = results.getCursor();

     for (ScoredDocument result : results) {
         // If you set Cursor.newBuilder().setPerResult(true)
         // then a cursor is returned with each result.
         result.getCursor();
     }

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `cursor` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Cursor` use a cursor returned from a previous set of search results as a starting point to retrieve the next set of results. This can get you better performance, and also improves the consistency of pagination through index updates |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setCursor(Cursor.Builder cursorBuilder)

    public QueryOptions.Builder setCursor(Cursor.Builder cursorBuilder)

Sets a cursor built from the builder.
See Also: [#setCursor(Cursor)](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder#com_google_appengine_api_search_QueryOptions_Builder_setCursor_com_google_appengine_api_search_Cursor_)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `cursorBuilder` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Cursor.Builder` a [Cursor.Builder](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Cursor.Builder) that is used to build a [Cursor](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Cursor). |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setFieldsToReturn(String\[\] fields)

    public QueryOptions.Builder setFieldsToReturn(String[] fields)

Specifies one or more fields to return in results.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `fields` | `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[]` the names of fields to return in results |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setFieldsToSnippet(String\[\] fieldsToSnippet)

    public QueryOptions.Builder setFieldsToSnippet(String[] fieldsToSnippet)

Specifies one or more fields to snippet in results. Snippets will be
returned as fields with the same names in
[ScoredDocument#getExpressions()](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.ScoredDocument#com_google_appengine_api_search_ScoredDocument_getExpressions__).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `fieldsToSnippet` | `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[]` the names of fields to snippet in results |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setLimit(int limit)

    public QueryOptions.Builder setLimit(int limit)

Sets the limit on the number of documents to return in [Results](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Results).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `limit` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` the number of documents to return |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setNumberFoundAccuracy(int numberFoundAccuracy)

    public QueryOptions.Builder setNumberFoundAccuracy(int numberFoundAccuracy)

Sets the accuracy requirement for
[Results#getNumberFound()](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Results#com_google_appengine_api_search_Results_getNumberFound__). If set,
`getNumberFound()` will be accurate up to at least that number.
For example, when set to 100, any `getNumberFound() <= 100` is
accurate. This option may add considerable latency / expense, especially
when used with Builder#setFieldsToReturn(String...).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `numberFoundAccuracy` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` the minimum accuracy requirement |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setOffset(int offset)

    public QueryOptions.Builder setOffset(int offset)

Sets the offset of the first result to return.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `offset` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` the offset into all search results to return the limit amount of results |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setReturningIdsOnly(boolean idsOnly)

    public QueryOptions.Builder setReturningIdsOnly(boolean idsOnly)

Sets whether or not the search should return documents or document IDs only.
This setting is incompatible with
[#addExpressionToReturn(FieldExpression)](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder#com_google_appengine_api_search_QueryOptions_Builder_addExpressionToReturn_com_google_appengine_api_search_FieldExpression_) and with
#setFieldsToReturn(String...) methods.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `idsOnly` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` whether or not only IDs of documents are returned by search request |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setSortOptions(SortOptions sortOptions)

    public QueryOptions.Builder setSortOptions(SortOptions sortOptions)

Sets a [SortOptions](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.SortOptions) to sort documents with.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `sortOptions` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.SortOptions` specifies how to sort the documents in [Results](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.Results) |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |

### setSortOptions(SortOptions.Builder builder)

    public QueryOptions.Builder setSortOptions(SortOptions.Builder builder)

Sets a [SortOptions](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.SortOptions) using a builder.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `builder` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.SortOptions.Builder` a builder of a [SortOptions](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.SortOptions) |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.search.QueryOptions.Builder` | this Builder |