com.google.appengine.api.search

## Class Query

- java.lang.Object
- - com.google.appengine.api.search.Query

-     public class Query
      extends java.lang.Object

  A query to search an index for documents which match, restricting the document fields returned to those given, and scoring and sorting the results, whilst supporting pagination.

  For example, the following query will search for documents where the tokens 'good' and 'story' occur in some fields, returns up to 20 results including the fields 'author' and 'date-sent' as well as snippeted fields 'subject' and 'body'. The results are sorted by 'author' in descending order, getting the next 20 results from the responseCursor in the previously returned results, giving back a single cursor in the `Results` to get the next batch of results after this.

       QueryOptions options = QueryOptions.newBuilder()
           .setLimit(20)
           .setFieldsToSnippet("subject", "body")
           .setScorer(CustomScorer.newBuilder()
               .addSortExpression(SortExpression.newBuilder()
                   .setExpression("author")
                   .setDirection(SortDirection.DESCENDING)
                   .setDefaultValue("")))
           .setCursor(responseCursor)
           .build();
       Query query = Query.newBuilder()
           .setOptions(options)
           .build("good story");

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Query.Builder` A builder which constructs Query objects.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `QueryOptions` | `getOptions()`
    `java.lang.String` | `getQueryString()` The query can be as simple as a single term ("foo"), or as complex as a boolean expression, including field names ("title:hello OR body:important -october").
    `static Query.Builder` | `newBuilder()` Creates and returns a `Query` builder.
    `static Query.Builder` | `newBuilder(Query query)` Creates a builder from the given query.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getQueryString

          public java.lang.String getQueryString()

      The query can be as simple as a single term ("foo"), or as complex as a boolean expression, including field names ("title:hello OR body:important -october").
      Returns:
        the query

    - #### getOptions

          public QueryOptions getOptions()

      Returns:
        the `QueryOptions` for controlling the what is returned in the result set matching the query

    - #### newBuilder

          public static Query.Builder newBuilder()

      Creates and returns a `Query` builder. Set the query parameters and use the `Query.Builder.build()` method to create a concrete instance of Query.
      Returns:
        a `Query.Builder` which can construct a query

    - #### newBuilder

          public static Query.Builder newBuilder(Query query)

      Creates a builder from the given query.
      Parameters:
        `query` - the query for the builder to use to build another query
      Returns:
        a new builder with values based on the given request

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`