Todos os produtos
Search
Central de documentação

Tablestore:Wildcard query

Última atualização: Aug 20, 2026

Uma consulta com curinga no Tablestore SDK for Java usa os padrões * e ? para corresponder a dados em campos Keyword, Text ou FuzzyKeyword.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize um cliente.

Descrição do recurso

A consulta com curinga compara um campo indexado com um padrão que contém caracteres curinga. A semântica de correspondência assemelha-se ao operador LIKE do SQL, mas o padrão usa * e ? como caracteres curinga. Em campos Keyword ou FuzzyKeyword, o sistema compara o padrão com o valor completo do campo. Em campos Text, a comparação ocorre com cada token gerado a partir do valor do campo, sem tokenizar o próprio padrão. Para mais informações sobre os tipos de campo compatíveis, consulte String types. A correspondência diferencia maiúsculas de minúsculas.

O padrão pode começar com um caractere curinga e aceita os seguintes caracteres:

  • *: corresponde a zero ou mais caracteres.

  • ?: corresponde a qualquer caractere único.

Por exemplo, table*e corresponde a tablestore. O padrão hang*u corresponde tanto a hangu quanto a hangzhou. Já o padrão hang?u corresponde a hangxu, mas não a hangu.

Para corresponder a valores que contenham uma string específica, como no padrão *word* (equivalente ao SQL WHERE field_a LIKE '%word%'), use uma token-based wildcard query. Com essa abordagem, o desempenho da consulta não se degrada conforme o volume de dados aumenta.

Nota

Para excluir dados correspondentes a um padrão, adicione o objeto WildcardQuery a BoolQuery.mustNotQueries. Essa configuração equivale ao operador SQL NOT LIKE. Para obter informações sobre como configurar BoolQuery, consulte Boolean query.

Defina o tipo de consulta como WildcardQuery ao chamar search. Use 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 a seguir consulta valores Keyword no campo product_name que correspondem ao padrão table*e. A consulta retorna até 10 linhas e o número total de correspondências.

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

WildcardQuery wildcardQuery = new WildcardQuery();
wildcardQuery.setFieldName("product_name");
wildcardQuery.setValue("table*e");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(wildcardQuery);
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 estiver configurado, o sistema retornará apenas as colunas de chave primária.

timeoutInMillisecond (opcional)

int

Tempo limite da consulta no nível da solicitação, em milissegundos. O valor padrão é -1, que indica ausência de tempo limite específico.

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 WildcardQuery para executar uma consulta com curinga.

offset (opcional)

Integer

Posição inicial da consulta.

limit (opcional)

Integer

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

highlight (opcional)

Highlight

Configurações de resumo e destaque para campos Text. Para detalhes de configuração, consulte Summary and highlighting.

collapse (opcional)

Collapse

Configurações de colapso de campos, que removem duplicatas dos resultados com base em um campo especificado. Para detalhes de configuração, consulte Collapse query results.

sort (opcional)

Sort

Ordem de classificação dos resultados. Para detalhes de configuração, consulte Sort and paginate results.

trackTotalCount (opcional)

int

Contagem máxima esperada de linhas correspondentes. 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 melhora o desempenho da consulta.

filter (opcional)

SearchFilter

Filtro aplicado aos resultados da query.

aggregationList (opcional)

List<Aggregation>

Configurações de agregação. Para detalhes de configuração, consulte Aggregation.

groupByList (opcional)

List<GroupBy>

Configurações de agrupamento. Para detalhes de configuração, consulte Aggregation.

token (opcional)

byte[]

Token de paginação. Defina este parâmetro com o valor nextToken da resposta anterior para continuar a leitura das linhas. Ao definir token, o SDK limpa sort, pois o token já contém as condições de ordenação.

Condição da consulta

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

Nome

Tipo

Descrição

fieldName (obrigatório)

String

Nome do campo Keyword, Text ou FuzzyKeyword a consultar.

value (obrigatório)

String

Padrão de consulta contendo caracteres curinga. O comprimento máximo é de 32 caracteres e a correspondência diferencia maiúsculas de minúsculas. Em campos Keyword ou FuzzyKeyword, o sistema compara o padrão com o valor completo do campo. Em campos Text, a comparação ocorre com cada token, sem tokenizar o próprio padrão.

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 contribuição da condição para a pontuação de relevância BM25. Este parâmetro não afeta a correspondência nem o número de linhas retornadas. Ele influencia a ordem dos resultados apenas quando ScoreSort classifica por pontuação de relevância. 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 returnAll e returnAllFromIndex forem ambos false. Se você omitir este parâmetro, o sistema retornará apenas as colunas de chave primária.

returnAll (opcional)

boolean

Especifica se o sistema deve retornar todas as colunas de atributo da tabela de dados. O valor padrão é false.

returnAllFromIndex (opcional)

boolean

Especifica se o sistema deve retornar todas as colunas de atributo indexadas. 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 campos principais.

Nome

Tipo

Descrição

totalCount

long

Quantidade de linhas correspondentes. Chame getTotalCount() para obter o valor. O resultado depende da configuração de trackTotalCount.

rows

List<Row>

Linhas retornadas por esta consulta. Chame getRows() para obter o valor. O número de linhas não excede limit.

searchHits

List<SearchHit>

Resultados da consulta. Chame getSearchHits() para obter o valor. Se highlight estiver configurado, este campo conterá os dados das linhas, além dos resultados de resumo e destaque.

nextToken

byte[]

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

isAllSuccess

boolean

Indica se todas as partições do índice foram consultadas com sucesso. Chame isAllSuccess() para obter o valor. Se o valor for false, a resposta conterá resultados parciais e totalCount poderá ser inferior ao número real de linhas correspondentes.