Todos os produtos
Search
Central de documentação

Tablestore:Índices de pesquisa

Última atualização: Sep 22, 2026

Neste guia, crie e gerencie índices de pesquisa com o Tablestore CLI para consultar dados por colunas que não são de chave primária e combinar várias condições.

Pré-requisitos

  • O Tablestore CLI com credenciais de acesso configuradas. Para mais informações, consulte Tablestore CLI.

  • Uma tabela de dados. Para mais informações, consulte Data table operations.

Crie um índice de pesquisa

create_search_index -n <indexName>

Parâmetro

Obrigatório

Descrição

-i, --input

Não

O caminho para um arquivo JSON que define o schema do índice de pesquisa. Caso não especifique, o CLI usa entrada interativa.

-n, --name

Sim

O nome do índice de pesquisa.

-t, --table

Não

O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando use.

--ttl

Não

O tempo de vida (TTL) dos dados, que especifica por quanto tempo os dados são retidos. Unidade: segundos. Valor padrão: -1 (os dados nunca expiram). Valor mínimo: 86400 (um dia). Os dados que excedem o TTL são excluídos automaticamente.

Importante

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

Quando solicitado, insira o schema do índice no formato JSON ou use o parâmetro -i e especifique um arquivo de schema. O schema 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

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

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

  • FieldType (obrigatório): O Data types do campo.

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

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

  • Analyzer (opcional): O tipo de Tokenization. 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 dividir palavras alfabéticas e dígitos; padrão: false).

  • EnableSortAndAgg (opcional): Especifica se a ordenação e a agregação devem ser ativadas. Tipo: Boolean. Apenas campos com EnableSortAndAgg definido como true podem ser usados para sorting. Se necessário, ative ambas.

    Importante

    Campos Nested não suportam ordenação e agregação. No entanto, as subcolunas dentro de um campo Nested suportam ordenação e agregação.

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

  • IsVirtualField (opcional): Especifica se a coluna é uma Virtual columns. Tipo: Boolean. Valor padrão: false. Se o valor for true, SourceFieldNames é obrigatório.

  • SourceFieldNames (opcional): O nome do campo na tabela de dados. Tipo: String. Obrigatório quando IsVirtualField for 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): O 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 Sorting and paging.

  • Name: O 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 (o nome do campo para ordenação, obrigatório para ordenação por valor de campo) e Order (a ordem de classificação: ASC para ascendente ou DESC para descendente; padrão: ASC).

Exemplos

Crie um índice de pesquisa chamado search_index.

create_search_index -n search_index

Insira o schema 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 pesquisa a partir de um arquivo:

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

Liste índices de pesquisa

list_search_index

Parâmetro

Obrigatório

Descrição

-a, --all

Não

Lista índices de pesquisa para todas as tabelas de dados.

-d, --detail

Não

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

-t, --table

Não

O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando use.

Exemplos

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

list_search_index -d

Visualize detalhes do índice de pesquisa

describe_search_index -n <indexName>

Parâmetro

Obrigatório

Descrição

-n, --name

Sim

O nome do índice de pesquisa.

-o, --output

Não

Com este parâmetro, salve a saída em um arquivo .json ou TXT local.

-t, --table

Não

O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando use.

Exemplos

Agora, visualize os detalhes do índice search_index.

describe_search_index -n search_index

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

Consulte dados com um índice de pesquisa

O Tablestore CLI suporta os seguintes tipos de consulta de índice de pesquisa: 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 e Exists query. Selecione um tipo de consulta que se adeque 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

A posição a partir da qual começar a retornar os resultados.

Limit

Não

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

Collapse

Não

A configuração de colapso. Use este parâmetro para Collapse (remove duplicates) o conjunto de resultados por uma coluna específica. FieldName especifica o nome da coluna. Apenas colunas de número inteiro, ponto flutuante e Keyword são suportadas.

Sort

Não

A ordem de classificação dos resultados. Para mais informações, consulte Define at query time. Se não for definido, os resultados são retornados na ordem de pré-classificação. Se nenhuma ordem de pré-classificação estiver definida, os resultados são retornados na ordem de chave primária.

GetTotalCount

Não

Especifica se o número total de linhas correspondentes deve ser retornado. Valor padrão: false. Cuidado: ative esta opção apenas se necessário, pois pode aumentar a latência da consulta.

Token

Não

Um 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

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

Aggregations

Não

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

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

  • Aggregation: A configuração dos parâmetros de agregação, incluindo AggName (um nome de agregação personalizado), Field (o campo a ser agregado) e MissingValue (o 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 a seguir 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"
        }
    }]
}

Exclua um índice de pesquisa

drop_search_index -n <indexName> -y

Parâmetro

Obrigatório

Descrição

-n, --name

Sim

O nome do índice de pesquisa.

-t, --table

Não

O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando use.

-y, --yes

Sim

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

Exemplos

Agora, exclua o índice search_index.

drop_search_index -n search_index -y