Todos los productos
Search
Centro de documentos

Tablestore:Índices de búsqueda

Última actualización: Sep 03, 2026

Cree y gestione índices de búsqueda con la CLI de Tablestore para consultar datos por columnas que no son clave principal y combinar varias condiciones.

Requisitos previos

  • La CLI de Tablestore con las credenciales de acceso configuradas. Para más información, consulte Tablestore CLI.

  • Una tabla de datos. Para más información, consulte Data table operations.

Crear un índice de búsqueda

create_search_index -n <indexName>

Parámetro

Obligatorio

Descripción

-i, --input

No

Ruta al archivo JSON que define el esquema del índice de búsqueda. Si no se especifica, la CLI usa entrada interactiva.

-n, --name

Sí

Nombre del índice de búsqueda.

-t, --table

No

Nombre de la tabla de datos. No es necesario si ya seleccionó una tabla de datos con el comando use.

--ttl

No

Tiempo de vida (TTL) de los datos; especifique cuánto tiempo se conservan. Unidad: segundos. Valor predeterminado: -1 (los datos nunca caducan). Valor mínimo: 86400 (un día). Los datos que superan el TTL se eliminan automáticamente.

Importante

Para usar la función Lifecycle management del índice de búsqueda, deshabilite la operación UpdateRow en la tabla de datos. El TTL del índice de búsqueda y el de la tabla de datos son independientes. El TTL del índice de búsqueda debe ser menor o igual al de la tabla de datos.

Cuando se le solicite, introduzca el esquema del índice en formato JSON o use el parámetro -i para especificar un archivo de esquema. El esquema contiene la siguiente configuración:

Parámetro

Obligatorio

Descripción

IndexSetting

No

Configuración del índice, incluidos RoutingFields.

RoutingFields (opcional): Campos de enrutamiento personalizados. Seleccione columnas de clave principal como campos de enrutamiento. Los datos con los mismos valores de campo de enrutamiento se distribuyen en la misma partición durante las operaciones de lectura y escritura, lo que mejora el rendimiento de las consultas. Por lo general, establezca solo un campo de enrutamiento. Si configura varios, Tablestore concatena los valores en uno solo.

FieldSchemas

Sí

Lista de objetos FieldSchema. Cada FieldSchema contiene los siguientes campos:

  • FieldName (obligatorio): Nombre del campo para el índice de búsqueda (nombre de la columna). Tipo: String. Un campo en un índice de búsqueda puede ser una columna de clave principal o de atributo.

  • FieldType (obligatorio): Data types del campo.

  • IsArray (opcional): Especifica si el campo es una matriz. Tipo: Boolean. Si se establece en true, la columna es una matriz y los datos deben escribirse en formato de matriz JSON, como ["a","b","c"]. Dado que Nested es un tipo de matriz, no necesita configurar este parámetro cuando FieldType es Nested.

  • Index (opcional): Especifica si se habilita la indexación. Tipo: Boolean. Valor predeterminado: true, lo que crea un índice invertido o espacial para la columna. Si se establece en false, no se crea ningún índice para la columna.

  • Analyzer (opcional): Tipo de Tokenization. Configure este parámetro cuando el tipo de campo sea Text. Si no se configura, el valor predeterminado es la tokenización de caracteres individuales.

  • AnalyzerParameter: Parámetros para el analizador SingleWord, incluidos CaseSensitive (si la coincidencia distingue entre mayúsculas y minúsculas; predeterminado: false) y DelimitWord (si se deben separar palabras alfabéticas y dígitos; predeterminado: false).

  • EnableSortAndAgg (opcional): Especifica si se habilitan la ordenación y la agregación. Tipo: Boolean. Solo los campos con EnableSortAndAgg establecido en true pueden usarse para sorting.

    Importante

    Los campos Nested no admiten ordenación ni agregación. Sin embargo, las subcolumnas dentro de un campo Nested sí las admiten.

  • Store (opcional): Especifica si se almacena el valor del campo en el índice de búsqueda. Tipo: Boolean. Cuando está habilitado, el valor del campo se puede leer directamente desde el índice de búsqueda sin consultar la tabla de datos, lo que optimiza el rendimiento de la consulta.

  • IsVirtualField (opcional): Especifica si la columna es una de las Virtual columns. Tipo: Boolean. Valor predeterminado: false. Si se establece en true, SourceFieldNames es obligatorio.

  • SourceFieldNames (opcional): Nombre del campo en la tabla de datos. Tipo: String. Obligatorio cuando IsVirtualField se establece en true.

IndexSort

No

Configuración de preordenación del índice. Predeterminado: ordenado por clave principal.

Importante

Los índices que contienen campos Nested no admiten IndexSort y no pueden preordenarse.

Sorters (opcional): Método de preordenación. Admite ordenación por clave principal (PrimaryKeySort) y por valor de campo (FieldSort). Para más información, consulte Sorting and paging.

  • Name: Método de ordenación. PrimaryKeySort ordena por clave principal. FieldSort ordena por valor de campo. Solo los campos indexados con ordenación y agregación habilitadas pueden preordenarse.

  • Sorter: Contiene FieldName (nombre del campo para ordenar, obligatorio para la ordenación por valor de campo) y Order (orden de clasificación: ASC para ascendente o DESC para descendente; predeterminado: ASC).

Ejemplos

Cree un índice de búsqueda llamado search_index.

create_search_index -n search_index

Introduzca el esquema del índice cuando se le solicite. Ejemplo:

{
    "IndexSetting": {
        "RoutingFields": null
    },
    "FieldSchemas": [
        {
            "FieldName": "gid",
            "FieldType": "LONG",
            "Index": true,
            "EnableSortAndAgg": true,
            "Store": true,
            "IsArray": false,
            "IsVirtualField": false
        },
        {
            "FieldName": "col3",
            "FieldType": "TEXT",
            "Index": true,
            "Analyzer": "single_word",
            "AnalyzerParameter": {
                "CaseSensitive": true,
                "DelimitWord": null
            },
            "EnableSortAndAgg": false,
            "Store": true,
            "IsArray": false,
            "IsVirtualField": false
        }
    ],
    "IndexSort": {
        "Sorters": [
            {
                "Name": "PrimaryKeySort",
                "Sorter": {
                    "Order": "ASC"
                }
            }
        ]
    }
}

Cree un índice de búsqueda desde un archivo:

create_search_index -n search_index -i /tmp/indexschema.json

Listar índices de búsqueda

list_search_index

Parámetro

Obligatorio

Descripción

-a, --all

No

Lista los índices de búsqueda de todas las tablas de datos.

-d, --detail

No

Muestra información detallada sobre los índices de búsqueda.

-t, --table

No

Nombre de la tabla de datos. No es necesario si ya seleccionó una tabla de datos con el comando use.

Ejemplos

Liste los índices de búsqueda de la tabla de datos actual con detalles.

list_search_index -d

Consultar detalles del índice de búsqueda

describe_search_index -n <indexName>

Parámetro

Obligatorio

Descripción

-n, --name

Sí

Nombre del índice de búsqueda.

-o, --output

No

Guarde la salida en un archivo JSON o TXT local.

-t, --table

No

Nombre de la tabla de datos. No es necesario si ya seleccionó una tabla de datos con el comando use.

Ejemplos

Consulte los detalles del índice search_index.

describe_search_index -n search_index

El campo Index schema en la salida contiene el esquema del índice de búsqueda. TimeToLive muestra el TTL del índice de búsqueda.

Consultar datos con un índice de búsqueda

La CLI de Tablestore admite los siguientes tipos de consulta de índice de búsqueda: Term query, Terms query, Match all query, Match query, Match phrase query, Prefix query, Range query, Wildcard query, Token-based wildcard query, Boolean query, Geo query y Exists query. Seleccione un tipo de consulta adecuado para su caso de uso.

search -n <indexName> --return_all_indexed

Cuando se le solicite, introduzca las condiciones de consulta en formato JSON. Las condiciones de consulta contienen la siguiente configuración:

Parámetro

Obligatorio

Descripción

Offset

No

Posición desde la cual comenzar a devolver resultados.

Limit

No

Número máximo de filas a devolver. Para obtener solo el recuento de filas sin devolver datos, establezca Limit en 0.

Collapse

No

Configuración de colapso. Use este parámetro para aplicar Collapse (remove duplicates) al conjunto de resultados según una columna específica. FieldName especifica el nombre de la columna. Solo se admiten columnas de enteros, punto flotante y Keyword.

Sort

No

Orden de clasificación de los resultados. Para más información, consulte Define at query time. Si no se establece, los resultados se devuelven en el orden de preordenación. Si no se define un orden de preordenación, los resultados se devuelven en orden de clave principal.

GetTotalCount

No

Especifica si se devuelve el número total de filas coincidentes. Valor predeterminado: false. Habilitar esta opción puede aumentar la latencia de la consulta.

Token

No

Token de paginación para leer los resultados restantes. Cuando una respuesta no contiene todas las filas coincidentes, el servidor devuelve un Token. Pase este Token en la siguiente solicitud para continuar leyendo. Establezca Token en null para la primera solicitud.

Query

Sí

Tipo de consulta. Tipos compatibles: MatchAllQuery, MatchQuery, MatchPhraseQuery, TermQuery, TermsQuery, PrefixQuery, RangeQuery, WildcardQuery, ExistsQuery, NestedQuery, KnnVectorQuery y BoolQuery.

Aggregations

No

Configuración de Aggregation. Admite operaciones de valor mínimo, valor máximo, suma, promedio, recuento y recuento distinto.

  • Name: Tipo de agregación, como min, max, sum, avg o count.

  • Aggregation: Configuración de parámetros de agregación, incluidos AggName (nombre de agregación personalizado), Field (campo a agregar) y MissingValue (valor predeterminado cuando el campo está vacío).

Ejemplos

Consulte datos en la tabla actual con search_index y devuelva todas las columnas indexadas.

search -n search_index --return_all_indexed

Introduzca las condiciones de consulta cuando se le solicite. El siguiente ejemplo consulta filas donde uid es igual a 10001 y calcula el promedio de la columna pid:

{
    "Offset": -1,
    "Limit": 10,
    "Collapse": null,
    "Sort": null,
    "GetTotalCount": true,
    "Token": null,
    "Query": {
        "Name": "TermQuery",
        "Query": {
            "FieldName": "uid",
            "Term": 10001
        }
    },
    "Aggregations": [{
        "Name": "avg",
        "Aggregation": {
            "AggName": "agg1",
            "Field": "pid"
        }
    }]
}

Eliminar un índice de búsqueda

drop_search_index -n <indexName> -y

Parámetro

Obligatorio

Descripción

-n, --name

Sí

Nombre del índice de búsqueda.

-t, --table

No

Nombre de la tabla de datos. No es necesario si ya seleccionó una tabla de datos con el comando use.

-y, --yes

Sí

Confirme la eliminación. Este parámetro es obligatorio en el comando.

Ejemplos

Elimine el índice search_index.

drop_search_index -n search_index -y