Class `Document` represents a document containing searchable content.

`Document` is defined in the module `google.appengine.api.search`.

## Constructor

The constructor for class `Document` is defined as follows:

class Document(doc_id=None, fields=None, language='en', rank=None)

:   Construct an instance of class `Document`.

    The following example shows how to create a document consisting of a set of fields, some plain text and one in HTML:

    ```python
    from google.appengine.api import search

    search.Document(
        doc_id='documentId',
        fields=[search.TextField(name='subject', value='going for dinner'),
                search.HtmlField(name='body', value='<html>I found a place.</html>'),
                search.TextField(name='signature', value='brzydka pogoda', language='pl')],
        language='en')
    ```

    <br />

:

    Arguments

    doc_id

    :   The *document identifier,* a human-readable ASCII string identifying the document. Must contain no whitespace characters and not start with an exclamation point (`!`). If omitted, the search service will provide an identifier string.


        In most cases, you do not need to specify the document identifier explicitly. Specifying your own identifier is useful, however, for implementing search with other storage mechanisms, such as Blobstore or Google Storage. In the case of Blobstore, for example, you can set the document identifier to the `https://docs.cloud.google.com/appengine/docs/standard/python3/reference/services/bundled/google/appengine/api/datastore_types/BlobKey` in order to associate that document with a specific blob.

    fields

    :   An iterable collection of `Field` objects representing the content of the document.

    language

    :   A two-letter [ISO 693-1](http://www.sil.org/iso639-3/codes.asp?order=639_1&letter=%25) code for the language in which the document's field values are expressed.

    rank

    :   The document's *rank,* an integer specifying the order in which it will be returned in search results. Newer documents are returned first. If not specified the rank will be set to the number of seconds since 1 January 2011 00:00:00 UTC.
        Note that when rank is used in a FieldExpression or SortExpression it is referenced as `_rank`.

    Result value

    :   A new instance of class `Document`.

    Exceptions

    TypeError

    :   A parameter has an invalid type or an unknown attribute was passed.

    ValueError

    :   A parameter has an invalid value.

    <br />

<br />

## Properties

An instance of class `Document` has the following properties:

doc_id

:   The document identifier, a human-readable ASCII string identifying the document.

fields

:   A list of the document's [fields](https://docs.cloud.google.com/appengine/docs/standard/services/search/python/fieldclasses).

language

:   The two-letter [ISO 693-1](http://www.sil.org/iso639-3/codes.asp?order=639_1&letter=%25) code for the language in which the document's field values are expressed.

rank

:   The document's rank, an integer specifying the order in which it will be returned in search results.
    Note that when rank is used in a FieldExpression or SortExpression it is referenced as `_rank`.
    Also, if you create a SortExpression that includes rank as one of the sort keys, rank can only be sorted in
    the DESCENDING direction.