Todos os produtos
Search
Central de documentação

Tablestore:Suffix query

Última atualização: Sep 29, 2026

Uma consulta por sufixo (SuffixQuery) localiza, em um índice de pesquisa, dados que terminam com uma string específica. Por exemplo, é possível consultar a entrega de um pacote usando os quatro últimos dígitos de um número de telefone.

Como funciona

Para executar uma SuffixQuery, especifique o valor do sufixo a buscar.

Apenas o tipo de dado FuzzyKeyword oferece suporte a consultas por sufixo. O FuzzyKeyword é otimizado para operações de pesquisa aproximada, como SuffixQuery, PrefixQuery e wildcard query, e oferece desempenho estável independentemente do volume de dados.

Nota
  • Campos do tipo FuzzyKeyword não oferecem suporte a ordenação ou agregação. Caso precise ordenar ou agregar dados em um campo FuzzyKeyword, crie uma virtual column do tipo Keyword para essa finalidade.

  • Para simular uma consulta por sufixo em um campo Keyword, inverta a string ao gravar os dados e, em seguida, use uma consulta por prefixo (PrefixQuery) para pesquisar os dados.

API

Chame a operação Search ou ParallelScan com o tipo de consulta definido como SuffixQuery.

Parâmetros

Solicitação de pesquisa

request é um objeto SearchRequest que contém os seguintes parâmetros.

Nome

Tipo

Descrição

tableName (obrigatório)

String

O nome da tabela de dados.

indexName (obrigatório)

String

O nome do índice de pesquisa.

searchQuery (obrigatório)

SearchQuery

A condição de consulta e as configurações gerais da consulta.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

As colunas a retornar. Se não configurar este parâmetro, o sistema retornará apenas as colunas de chave primária.

timeoutInMillisecond (opcional)

int

O tempo limite de consulta no nível da solicitação, em milissegundos. O valor padrão é -1, que não define um tempo limite de consulta separado.

routingValues (opcional)

List<PrimaryKey>

Os valores de chave primária que correspondem aos campos de roteamento personalizados. Não defina este parâmetro se o roteamento personalizado não estiver configurado.

Configurações de consulta

request.searchQuery é um objeto SearchQuery que contém os seguintes parâmetros.

Nome

Tipo

Descrição

query (obrigatório)

Query

A condição de consulta. Defina este parâmetro como um objeto SuffixQuery para uma consulta por sufixo.

offset (opcional)

Integer

A posição a partir da qual iniciar a consulta atual.

limit (opcional)

Integer

O número máximo de linhas a retornar. Defina este parâmetro como 0 para não retornar nenhuma linha.

collapse (opcional)

Collapse

A configuração de colapso usada para desduplicar resultados por um campo especificado. Para mais informações, consulte Colapso (distinto).

sort (opcional)

Sort

A ordenação dos resultados. Campos FuzzyKeyword não podem ser usados como campos de ordenação. Para mais informações, consulte Ordenação e paginação.

trackTotalCount (opcional)

int

O número máximo de linhas correspondentes a contar. O valor padrão é TRACK_TOTAL_COUNT_DISABLED, que desativa a contagem. Defina este parâmetro como TRACK_TOTAL_COUNT para contar todas as linhas correspondentes. Um valor menor oferece melhor desempenho de consulta.

filter (opcional)

SearchFilter

Um filtro pós-consulta aplicado aos resultados de query.

aggregationList (opcional)

List<Aggregation>

As configurações de agregação. Campos FuzzyKeyword não podem ser usados como campos de agregação. Para mais informações, consulte Agregação.

groupByList (opcional)

List<GroupBy>

As configurações de agrupamento. Campos FuzzyKeyword não podem ser usados como campos de agrupamento. Para mais informações, consulte Agregação.

token (opcional)

byte[]

O token de paginação. Defina o nextToken da resposta anterior como este parâmetro para ler a próxima página. Ao definir o token, o SDK limpa o sort porque o token já contém a condição de ordenação.

Condição de consulta

request.searchQuery.query é um objeto SuffixQuery que contém os seguintes parâmetros.

Nome

Tipo

Descrição

fieldName (obrigatório)

String

O nome do campo FuzzyKeyword a ser consultado.

suffix (obrigatório)

String

A string de consulta. O valor completo do campo deve terminar com esta string. A pesquisa diferencia maiúsculas de minúsculas.

weight (opcional)

float

O peso de relevância da condição de consulta. O valor deve ser um número de ponto flutuante positivo. Um valor maior confere mais influência à condição na pontuação de relevância BM25. Este parâmetro não altera quais linhas correspondem à pesquisa ou quantas linhas são retornadas. Ele afeta a ordem dos resultados apenas ao usar o ScoreSort. O valor padrão é 1.0.

Colunas retornadas

request.columnsToGet é um objeto SearchRequest.ColumnsToGet que contém os seguintes parâmetros.

Nome

Tipo

Descrição

columns (opcional)

List<String>

As colunas de atributo a retornar. Configure este parâmetro apenas se tanto returnAll quanto returnAllFromIndex forem false. Se não configurar este parâmetro, o sistema retornará apenas as colunas de chave primária.

returnAll (opcional)

boolean

Indica se todas as colunas de atributo da tabela de dados devem ser retornadas. O valor padrão é false.

returnAllFromIndex (opcional)

boolean

Indica se todas as colunas de atributo indexadas devem ser retornadas. O valor padrão é false. Não defina returnAll e returnAllFromIndex como true simultaneamente.

Uso

Execute uma consulta por sufixo usando o console do Tablestore ou um SDK. Antes de começar, cumpra os seguintes pré-requisitos:

Usar o console do Tablestore

  1. Acesse a guia Index Management.

    1. Faça login no console do Table Store.

    2. Na barra de navegação superior, selecione um grupo de recursos e uma região.

    3. Na página Overview, clique no nome da instância ou clique em Instance Management na coluna Actions.

    4. Na guia Instance Details, clique na aba Data Table List e, em seguida, no nome da tabela de dados ou em Index Management na coluna Actions.

  2. Na guia Indexes, localize o índice de pesquisa desejado e clique em Manage Data na coluna Actions.

    1. Por padrão, o sistema retorna todas as colunas. Para retornar colunas específicas, desative a opção Retrieve All Columns e insira os nomes das colunas, separados por vírgulas.

      Nota

      Por padrão, o Table Store retorna as colunas de chave primária da tabela de dados.

    2. Selecione um operador lógico: And, Or ou Not.

      Selecione And para que a consulta retorne dados que atendam a todas as condições especificadas. Selecione Or para retornar dados que atendam a pelo menos uma das condições. Selecione Not para retornar dados que não atendam às condições especificadas.

    3. Selecione um campo de índice do tipo FuzzyKeyword e clique em Add.

    4. Defina o tipo de consulta para o campo de índice como Suffix query (SuffixQuery) e insira o valor do sufixo.

    5. Por padrão, a ordenação está desativada. Para ordenar os resultados por um campo específico, ative a opção Enable Sorting, adicione o campo de ordenação e configure a ordem de classificação.

    6. Por padrão, a agregação está desativada. Para executar uma agregação estatística em um campo específico, ative a opção Enable Aggregation, adicione o campo para agregação e configure as definições de agregação.

  3. Clique em OK.

    Os resultados da consulta aparecem na guia Index Management.

Usar um SDK

O exemplo a seguir usa o Tablestore SDK for Java.

Importante
  • O Tablestore SDK for Java 5.17.0 e versões posteriores oferecem suporte ao recurso de consulta por sufixo.

  • Antes de executar uma consulta por sufixo com o SDK, inicialize um cliente. Para mais informações, consulte Inicializar um cliente do Tablestore.

O exemplo a seguir consulta valores FuzzyKeyword no campo phone que terminam com 1234. A consulta retorna até 10 linhas e o número total de correspondências.

String tableName = "example_table";
String indexName = "example_index";

SuffixQuery suffixQuery = new SuffixQuery();
suffixQuery.setFieldName("phone");
suffixQuery.setSuffix("1234");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(suffixQuery);
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());

Faturamento

Consultar dados por meio de um Search Index consome throughput de leitura. Para mais informações, consulte Medição e faturamento do Search Index.

Perguntas frequentes

Tópicos relacionados