NAME
    gcloud beta firestore indexes composite create - create a new composite
        index

SYNOPSIS
    gcloud beta firestore indexes composite create
        --field-config=[array-config=ARRAY-CONFIG],[field-path=FIELD-PATH],
          [order=ORDER],
          [search-config=SEARCH-CONFIG],[vector-config=VECTOR-CONFIG]
        (--collection-group=COLLECTION_GROUP : --database=DATABASE)
        [--api-scope=API_SCOPE; default="any-api"] [--async]
        [--density=DENSITY] [--multikey]
        [--query-scope=QUERY_SCOPE; default="collection"]
        [--search-index-options=[text-language=TEXT-LANGUAGE],
          [text-language-override-field-path=TEXT-LANGUAGE-OVERRIDE-FIELD-PATH]]
        [--unique] [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    (BETA) Create a new composite index.

EXAMPLES
    The following command creates a composite index with fields user_id (in
    descending order) followed by timestamp (in descending order) in the Events
    collection group.

        $ gcloud beta firestore indexes composite create \
            --collection-group=Events \
            --field-config=field-path=user-id,order=descending \
            --field-config=field-path=timestamp,order=descending

        $ gcloud beta firestore indexes composite create \
            --database=(default) --collection-group=Events \
            --field-config=field-path=user-id,order=descending \
            --field-config=field-path=timestamp,order=descending

REQUIRED FLAGS
     --field-config=[array-config=ARRAY-CONFIG],[field-path=FIELD-PATH],[order=ORDER],[search-config=SEARCH-CONFIG],[vector-config=VECTOR-CONFIG]
        Required, Configuration for an index field.

         array-config
            Specifies the configuration for an array field. The only valid
            option is 'contains'. Exactly one of 'order', 'array-config', or
            'vector-config' must be specified.

         field-path
            Specifies the field path (e.g. 'address.city'). This is required.

         order
            Specifies the order. Valid options are 'ascending', 'descending'.
            Exactly one of 'order', 'array-config', or 'vector-config' must be
            specified.

         search-config
            Specifies the configuration for a search field. An index definition
            must contain either only 'search-config' fields or only non
            'search-config' fields.

            Examples:

            Text search:

                --field-config=field-path=title,search-config='{"text-spec": {"index-specs": [{"index-type": "TOKENIZED", "match-type": "MATCH_GLOBALLY"}]}}'

            Geo search:

                --field-config=field-path=location,search-config='{"geo-spec": {"geo-json-indexing-disabled": true}}'

            With file:

                --field-config=field-path=text,search-config='/path/to/configs/search-config.json'

            For complex configurations, it is recommended to use a file.

             geo-spec
                Optional. The specification for building a geo search index for
                a field.

                 geo-json-indexing-disabled
                    Optional. Disables geoJSON indexing for the field. By
                    default, geoJSON points are indexed.

             text-spec
                Optional. The specification for building a text search index
                for a field.

                 index-specs
                    Optional. Array of specifications for how the field should
                    be indexed.

                     index-type
                        Required. How to index the text field value. Valid
                        options are:
                        ▹ TOKENIZED: Field values are tokenized.

                     match-type
                        Required. How to match the text field value. Valid
                        options are:
                        ▹ MATCH_GLOBALLY: Match on any indexed field.

         vector-config
            Specifies the configuration for a vector field. Exactly one of
            'order', 'array-config', or 'vector-config' must be specified.

             dimension
                Sets dimension value.

             flat
                Sets flat value.

        Shorthand Example:

            --field-config=array-config=string,field-path=string,order=string,search-config={geo-spec={geo-json-indexing-disabled=boolean},text-spec={index-specs=[{index-type=string,match-type=string}]}},vector-config={dimension=int,flat} --field-config=array-config=string,field-path=string,order=string,search-config={geo-spec={geo-json-indexing-disabled=boolean},text-spec={index-specs=[{index-type=string,match-type=string}]}},vector-config={dimension=int,flat}

        JSON Example:

            --field-config='[{"array-config": "string", "field-path": "string", "order": "string", "search-config": {"geo-spec": {"geo-json-indexing-disabled": boolean}, "text-spec": {"index-specs": [{"index-type": "string", "match-type": "string"}]}}, "vector-config": {"dimension": int, "flat": {}}}]'

        File Example:

            --field-config=path_to_file.(yaml|json)

     Collection group resource - Collection group of the index. The arguments
     in this group can be used to specify the attributes of this resource.
     (NOTE) Some attributes are not given arguments in this group but can be
     set in other ways.

     To set the project attribute:
      ◆ provide the argument --collection-group on the command line with a
        fully specified name;
      ◆ provide the argument --project on the command line;
      ◆ set the property core/project.

     This must be specified.

       --collection-group=COLLECTION_GROUP
          ID of the collection group or fully qualified identifier for the
          collection group.

          To set the collection-group attribute:
          ▸ provide the argument --collection-group on the command line.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --database=DATABASE
          Database of the collection group.

          To set the database attribute:
          ▸ provide the argument --collection-group on the command line with
            a fully specified name;
          ▸ provide the argument --database on the command line;
          ▸ the default value of argument [--database] is (default).

OPTIONAL FLAGS
     --api-scope=API_SCOPE; default="any-api"
        Api scope the index applies to. API_SCOPE must be one of: any-api,
        datastore-mode-api, mongodb-compatible-api.

     --async
        Return immediately, without waiting for the operation in progress to
        complete.

     --density=DENSITY
        Density of the index. DENSITY must be one of: dense,
        density-unspecified, sparse-all, sparse-any.

     --multikey
        Optional. Whether the index is multikey. By default, the index is not
        multikey. For non-multikey indexes, none of the paths in the index
        definition reach or traverse an array, except via an explicit array
        index. For multikey indexes, at most one of the paths in the index
        definition reach or traverse an array, except via an explicit array
        index. Violations will result in errors. Note this field only applies
        to index with 'MONGODB_COMPATIBLE_API' ApiScope.

     --query-scope=QUERY_SCOPE; default="collection"
        Query scope the index applies to. QUERY_SCOPE must be one of:
        collection, collection-group, collection-recursive.

     --search-index-options=[text-language=TEXT-LANGUAGE],[text-language-override-field-path=TEXT-LANGUAGE-OVERRIDE-FIELD-PATH]
        Optional. Configuration options for search indexes.

         text-language
            Optional. The language to use for text search indexes. Used as the
            default language if not overridden at the document level by
            specifying the 'text-language-override-field-path'. The language is
            specified as a BCP 47 language code. For indexes with
            'MONGODB_COMPATIBLE_API' ApiScope: If unspecified, the default
            language is English. For indexes with 'ANY_API' ApiScope: If
            unspecified, the default behavior is autodetect.

         text-language-override-field-path
            Optional. The field in the document that specifies which language
            to use for that specific document. If unspecified, the language is
            taken from the 'language' document field if it exists or from
            'text-language' if it does not.

        Shorthand Example:

            --search-index-options=text-language=string,text-language-override-field-path=string

        JSON Example:

            --search-index-options='{"text-language": "string", "text-language-override-field-path": "string"}'

        File Example:

            --search-index-options=path_to_file.(yaml|json)

     --unique
        Optional. Whether it is an unique index. Unique index ensures all
        values for the indexed field(s) are unique across documents.

GCLOUD WIDE FLAGS
    These flags are available to all commands: --access-token-file, --account,
    --billing-project, --configuration, --flags-file, --flatten, --format,
    --help, --impersonate-service-account, --log-http, --project, --quiet,
    --trace-token, --user-output-enabled, --verbosity.

    Run $ gcloud help for details.

API REFERENCE
    This command uses the firestore/v1 API. The full documentation for this API
    can be found at: https://cloud.google.com/firestore

NOTES
    This command is currently in beta and might change without notice. These
    variants are also available:

        $ gcloud firestore indexes composite create

        $ gcloud alpha firestore indexes composite create

