Todos os produtos
Search
Central de documentação

Tablestore:Search indexes

Última atualização: Jul 03, 2026

Crie e gerencie índices de busca com o Tablestore CLI para consultar dados por colunas que não sejam de chave primária e combinar várias condições.

Pré-requisitos

Criar um índice de busca

create_search_index -n <indexName>

Parâmetro

Obrigatório

Descrição

-i, --input

Não

Caminho para um arquivo JSON que define o esquema do índice de busca. Caso não seja especificado, a CLI usa entrada interativa.

-n, --name

Sim

Nome do índice de busca.

-t, --table

Não

Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando use.

--ttl

Não

Tempo de vida (TTL) dos dados, que define o período de retenção. Unidade: segundos. Valor padrão: -1 (os dados nunca expiram). Valor mínimo: 86400 (um dia). O sistema exclui automaticamente os dados que excedem o TTL.

Importante

Para usar o recurso de Gerenciamento de ciclo de vida do índice de busca, desative a operação UpdateRow na tabela de dados. O TTL do índice de busca e o TTL da tabela de dados são independentes. O TTL do índice de busca deve ser menor ou igual ao TTL da tabela de dados.

Quando solicitado, insira o esquema do índice no formato JSON ou use o parâmetro -i para especificar um arquivo de esquema. O esquema contém as seguintes configurações:

Parâmetro

Obrigatório

Descrição

IndexSetting

Não

Configurações do índice, incluindo RoutingFields.

RoutingFields (opcional): Campos de roteamento personalizados. Selecione colunas de chave primária como campos de roteamento. Dados com os mesmos valores de campo de roteamento são distribuídos para a mesma partição durante leituras e gravações, o que melhora o desempenho da consulta. Normalmente, defina apenas um campo de roteamento. Se você definir vários campos de roteamento, o Tablestore concatena os valores em um só.

FieldSchemas

Sim

Lista de objetos FieldSchema. Cada FieldSchema contém os seguintes campos:

  • FieldName (obrigatório): Nome do campo no índice de busca (nome da coluna). Tipo: String. Um campo em um índice de busca pode ser uma coluna de chave primária ou uma coluna de atributo.

  • FieldType (obrigatório): Tipos de dados do campo.

  • IsArray (opcional): Define se o campo é um array. Tipo: Boolean. Se definido como true, a coluna é um array e os dados devem ser gravados no formato de array JSON, como ["a","b","c"]. Como Nested é um tipo de array, não é necessário definir este parâmetro quando FieldType for Nested.

  • Index (opcional): Define se a indexação deve ser ativada. Tipo: Boolean. Valor padrão: true, que cria um índice invertido ou espacial para a coluna. Se definido como false, nenhum índice é criado para a coluna.

  • Analyzer (opcional): Tipo de Tokenização. Defina este parâmetro quando o tipo de campo for Text. Se não for definido, o padrão é a tokenização de caractere único.

  • AnalyzerParameter: Parâmetros para o analisador SingleWord, incluindo CaseSensitive (se a correspondência diferencia maiúsculas de minúsculas; padrão: false) e DelimitWord (se deve separar palavras alfabéticas e dígitos; padrão: false).

  • EnableSortAndAgg (opcional): Define se a ordenação e agregação devem ser ativadas. Tipo: Boolean. Apenas campos com EnableSortAndAgg definido como true podem ser usados para ordenação.

    Importante

    Campos Nested não suportam ordenação e agregação. No entanto, subcolunas dentro de um campo Nested suportam essas operações.

  • Store (opcional): Define se o valor do campo deve ser armazenado no índice de busca. Tipo: Boolean. Quando ativado, o valor do campo pode ser lido diretamente do índice de busca sem consultar a tabela de dados, otimizando o desempenho da consulta.

  • IsVirtualField (opcional): Define se a coluna é uma Coluna virtual. Tipo: Boolean. Valor padrão: false. Se definido como true, SourceFieldNames é obrigatório.

  • SourceFieldNames (opcional): Nome do campo na tabela de dados. Tipo: String. Obrigatório quando IsVirtualField estiver definido como true.

IndexSort

Não

Configurações de pré-ordenação do índice. Padrão: ordenado por chave primária.

Importante

Índices que contêm campos Nested não suportam IndexSort e não podem ser pré-ordenados.

Sorters (opcional): Método de pré-ordenação. Suporta ordenação por chave primária (PrimaryKeySort) e por valor de campo (FieldSort). Para mais informações, consulte Ordenação e paginação.

  • Name: Método de ordenação. PrimaryKeySort ordena por chave primária. FieldSort ordena por valor de campo. Apenas campos indexados com ordenação e agregação ativadas podem ser pré-ordenados.

  • Sorter: Contém FieldName (nome do campo para ordenação, obrigatório para ordenação por valor de campo) e Order (ordem de classificação: ASC para ascendente ou DESC para descendente; padrão: ASC).

Exemplos

Crie um índice de busca chamado search_index.

create_search_index -n search_index

Insira o esquema do índice conforme solicitado. Exemplo:

{
    "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"
                }
            }
        ]
    }
}

Crie um índice de busca a partir de um arquivo:

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

Listar índices de busca

list_search_index

Parâmetro

Obrigatório

Descrição

-a, --all

Não

Lista índices de busca de todas as tabelas de dados.

-d, --detail

Não

Exibe informações detalhadas sobre os índices de busca.

-t, --table

Não

Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando use.

Exemplos

Liste os índices de busca da tabela de dados atual com detalhes.

list_search_index -d

Visualizar detalhes do índice de busca

describe_search_index -n <indexName>

Parâmetro

Obrigatório

Descrição

-n, --name

Sim

Nome do índice de busca.

-o, --output

Não

Salva a saída em um arquivo JSON ou TXT local.

-t, --table

Não

Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando use.

Exemplos

Visualize os detalhes do índice search_index.

describe_search_index -n search_index

O campo Index schema na saída contém o esquema do índice de busca. TimeToLive mostra o TTL do índice de busca.

Consultar dados com um índice de busca

O Tablestore CLI suporta os seguintes tipos de consulta de índice de busca: Consulta Term, Consulta Terms, Consulta Match all, Consulta Match, Consulta Match phrase, Consulta Prefix, Consulta Range, Consulta Wildcard, Consulta Wildcard baseada em token, Consulta Boolean, Consulta Geo e Consulta Exists. Escolha o tipo de consulta adequado ao seu caso de uso.

search -n <indexName> --return_all_indexed

Quando solicitado, insira as condições de consulta no formato JSON. As condições de consulta contêm as seguintes configurações:

Parâmetro

Obrigatório

Descrição

Offset

Não

Posição inicial para retorno dos resultados.

Limit

Não

Número máximo de linhas a retornar. Para obter apenas a contagem de linhas sem retornar dados, defina Limit como 0.

Collapse

Não

Configuração de agrupamento. Use este parâmetro para Agrupar (remover duplicatas) o conjunto de resultados por uma coluna específica. FieldName especifica o nome da coluna. Há suporte apenas para colunas inteiras, de ponto flutuante e Keyword.

Sort

Não

Ordem de classificação dos resultados. Para mais informações, consulte Definir no momento da consulta. Se não for definido, os resultados retornam na ordem de pré-classificação. Caso nenhuma ordem de pré-classificação esteja definida, os resultados retornam na ordem de chave primária.

GetTotalCount

Não

Define se o número total de linhas correspondentes deve ser retornado. Valor padrão: false. Ativar esta opção pode aumentar a latência da consulta.

Token

Não

Token de paginação para ler os resultados restantes. Quando uma resposta não contém todas as linhas correspondentes, o servidor retorna um Token. Passe este Token na próxima solicitação para continuar a leitura. Defina Token como null na primeira solicitação.

Query

Sim

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

Aggregations

Não

Configuração de Agregação. Suporta operações de valor mínimo, valor máximo, soma, média, contagem e contagem distinta.

  • Name: Tipo de agregação, como min, max, sum, avg ou count.

  • Aggregation: Configuração dos parâmetros de agregação, incluindo AggName (nome personalizado da agregação), Field (campo a agregar) e MissingValue (valor padrão quando o campo está vazio).

Exemplos

Consulte dados na tabela atual com search_index e retorne todas as colunas indexadas.

search -n search_index --return_all_indexed

Insira as condições de consulta conforme solicitado. O exemplo abaixo consulta linhas onde uid é igual a 10001 e calcula a média da coluna 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"
        }
    }]
}

Excluir um índice de busca

drop_search_index -n <indexName> -y

Parâmetro

Obrigatório

Descrição

-n, --name

Sim

Nome do índice de busca.

-t, --table

Não

Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando use.

-y, --yes

Sim

Confirma a exclusão. Este parâmetro é obrigatório no comando.

Exemplos

Exclua o índice search_index.

drop_search_index -n search_index -y