Todos os produtos
Search
Central de documentação

Tablestore:Suffix query

Última atualização: Aug 20, 2026

Uma consulta de sufixo com o Tablestore SDK for Java identifica valores completos do campo FuzzyKeyword que terminam com uma string especificada e retorna as linhas correspondentes ou a contagem total.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize um cliente.

Nota

Consultas de sufixo exigem o Tablestore SDK for Java 5.17.0 ou posterior.

Descrição do recurso

A consulta de sufixo localiza valores completos de campos que terminam com uma string específica. Esse tipo de consulta aceita apenas campos FuzzyKeyword. Para mais informações sobre esse tipo de campo, consulte String types. A correspondência diferencia maiúsculas de minúsculas. Por exemplo, o valor de campo order-H001 corresponde ao sufixo H001, mas não a h001.

Nota

Campos FuzzyKeyword não suportam ordenação nem agregação. Caso a mesma consulta exija essas operações, utilize outro campo compatível com a funcionalidade desejada.

Campos Keyword não aceitam SuffixQuery. Para implementar uma correspondência de sufixo equivalente, inverta o valor do campo antes de gravá-lo em um campo Keyword destinado a consultas. No momento da consulta, inverta a string de sufixo a ser buscada e execute uma prefix query (PrefixQuery) no campo.

Defina o tipo de consulta como SuffixQuery ao chamar search. Utilize SearchQuery para configurar o limite de resultados, o rastreamento da contagem total e outras configurações gerais da consulta.

SearchResponse search(SearchRequest request)

O exemplo abaixo busca 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());

Parâmetros

Solicitação de busca

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

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela de dados.

indexName (obrigatório)

String

Nome do índice de busca.

searchQuery (obrigatório)

SearchQuery

Condição de consulta e configurações gerais da busca.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

Colunas a retornar. Se este parâmetro não for configurado, apenas as colunas de chave primária serão retornadas.

timeoutInMillisecond (opcional)

int

Tempo limite da consulta no nível da solicitação, em milissegundos. O valor padrão é -1, que não define um tempo limite específico para a consulta.

routingValues (opcional)

List<PrimaryKey>

Valores de chave primária correspondentes aos campos de roteamento personalizado. Deixe este parâmetro indefinido se o roteamento personalizado não estiver configurado.

Configurações da consulta

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

Nome

Tipo

Descrição

query (obrigatório)

Query

Condição da consulta. Defina este parâmetro como um objeto SuffixQuery para executar uma consulta de sufixo.

offset (opcional)

Integer

Posição inicial da consulta atual.

limit (opcional)

Integer

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

collapse (opcional)

Collapse

Configuração de colapso usada para deduplicar resultados com base em um campo específico. Para mais informações, consulte Collapse (distinct).

sort (opcional)

Sort

Ordem de classificação dos resultados. Campos FuzzyKeyword não podem ser usados como campos de ordenação. Para mais informações, consulte Sorting and pagination.

trackTotalCount (opcional)

int

Quantidade máxima 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 proporciona melhor desempenho na consulta.

filter (opcional)

SearchFilter

Filtro pós-consulta aplicado aos resultados de query.

aggregationList (opcional)

List<Aggregation>

Configurações de agregação. Campos FuzzyKeyword não podem ser utilizados como campos de agregação. Para mais informações, consulte Aggregation.

groupByList (opcional)

List<GroupBy>

Configurações de agrupamento. Campos FuzzyKeyword não podem servir como campos de agrupamento. Para mais informações, consulte Aggregation.

token (opcional)

byte[]

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

Condição da consulta

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

Nome

Tipo

Descrição

fieldName (obrigatório)

String

Nome do campo FuzzyKeyword a consultar.

suffix (obrigatório)

String

String de consulta. O valor completo do campo deve terminar com esta string. A correspondência diferencia maiúsculas de minúsculas.

weight (opcional)

float

Peso de relevância da condição de consulta. O valor deve ser um número de ponto flutuante positivo. Quanto maior o valor, maior a influência da condição na pontuação de relevância BM25. Este parâmetro não altera quais linhas correspondem nem quantas são retornadas, afetando a ordem dos resultados apenas quando ScoreSort é utilizado. 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>

Colunas de atributo a retornar. Configure este parâmetro somente se tanto returnAll quanto returnAllFromIndex forem false. Sem essa configuração, apenas as colunas de chave primária serão retornadas.

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

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

Valores de retorno

search retorna um objeto SearchResponse. A tabela a seguir descreve os principais campos.

Nome

Tipo

Descrição

totalCount

long

Número de linhas correspondentes, obtido chamando getTotalCount(). O valor retornado depende da configuração trackTotalCount.

rows

List<Row>

Linhas retornadas pela consulta atual, obtidas chamando getRows(). A quantidade de linhas não excede limit.

nextToken

byte[]

Token para a próxima página, obtido chamando getNextToken(). Se o valor não for null, defina-o como token na próxima solicitação para continuar a leitura.

isAllSuccess

boolean

Indica se todas as partições do índice foram consultadas com êxito, obtido chamando isAllSuccess(). Se este valor for false, a resposta conterá resultados parciais e totalCount poderá ser inferior ao número real de correspondências.