Todos os produtos
Search
Central de documentação

Tablestore:Wildcard query

Última atualização: Jul 03, 2026

Uma consulta com curinga (WildcardQuery) executa uma busca aproximada, semelhante ao operador LIKE em bancos de dados.

Nota

Para implementar a funcionalidade NOT LIKE, use uma WildcardQuery combinada com o parâmetro mustNotQueries em uma consulta booleana. Para mais informações, consulte Consulta booleana.

Visão geral

A consulta com curinga usa caracteres especiais para correspondência de padrões, o que melhora a precisão e a eficiência da busca.

Ao usar o recurso WildcardQuery, você pode empregar uma string de consulta com curingas para corresponder aos dados. Esse recurso aceita os curingas asterisco () e ponto de interrogação (?). O asterisco () representa qualquer sequência de caracteres; o ponto de interrogação (?) representa um único caractere. A string de consulta pode começar com asterisco (*) ou ponto de interrogação (?). Por exemplo, uma consulta por table*e pode corresponder a tablestore.

O tipo WildcardQuery é compatível com campos dos tipos de dados Keyword e FuzzyKeyword.

  • Keyword: tipo básico de string. O desempenho de consultas aproximadas, como a consulta com curinga, em campos Keyword é baixo para grandes conjuntos de dados e degrada à medida que o volume de dados aumenta.

  • FuzzyKeyword: tipo de dado otimizado para consultas aproximadas, como as consultas com curinga. Oferece desempenho superior e estável, sem degradação significativa conforme o tamanho do conjunto de dados cresce.

O Search Index oferece três tipos de consultas com curinga para atender a diversos requisitos de correspondência aproximada. Para mais detalhes, consulte a tabela a seguir.

Nota

Este tópico descreve como executar uma WildcardQuery em campos dos tipos Keyword e FuzzyKeyword. Para saber como implementar consultas aproximadas em campos do tipo Text, consulte Consulta com curinga baseada em tokenização.

Tipo

Método de consulta

Vantagem

Desvantagem

Keyword

WildcardQuery

Compatível com Elasticsearch.

O desempenho da consulta degrada conforme o volume de dados indexados aumenta.

FuzzyKeyword

WildcardQuery

Oferece desempenho superior e estável, sem degradação significativa conforme o tamanho dos dados aumenta.

Causa alguma expansão de dados.

Text

MatchPhraseQuery

Suporta correspondência sem distinção entre maiúsculas e minúsculas.

Causa alguma expansão de dados.

Observações de uso

O termo de consulta em uma WildcardQuery não pode exceder 32 caracteres, tanto para campos Keyword quanto FuzzyKeyword.

API

Para executar uma consulta com curinga, chame a operação Search ou parallel scan e defina o tipo de consulta como WildcardQuery.

Parâmetros

Parâmetro

Descrição

fieldName

Nome da coluna a ser consultada.

value

String contendo curingas, que não pode exceder 32 caracteres.

query

Tipo da consulta. Defina este parâmetro como WildcardQuery.

getTotalCount

Especifique se deve retornar o número total de linhas correspondentes. O valor padrão é false.

Retornar o número total de linhas correspondentes pode afetar o desempenho da consulta.

weight

Peso da consulta, um número de ponto flutuante positivo usado para ordenação baseada em pontuação na busca de texto completo. Um peso maior atribui uma pontuação mais alta à coluna nos resultados da consulta.

Este parâmetro afeta as pontuações dos resultados retornados, mas não altera a quantidade de resultados.

tableName

Nome da tabela de dados.

indexName

Nome do Search Index.

columnsToGet

Especifique quais colunas retornar. Inclui as configurações returnAll e columns.

Por padrão, returnAll é false, indicando que nem todas as colunas são retornadas. Nesse caso, use columns para especificar as colunas desejadas. Se nenhuma coluna for especificada, apenas as colunas de chave primária serão retornadas.

Se você definir returnAll como true, todas as colunas serão retornadas.

Como usar

Você pode executar uma consulta com curinga usando o console do Tablestore, uma ferramenta de linha de comando (CLI) ou um SDK. Antes de começar, conclua as seguintes preparações:

Importante

Atualmente, a WildcardQuery em um campo FuzzyKeyword é suportada apenas pelos SDKs do Tablestore.

Usar o console

  1. Acesse a aba 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 em no nome da instância ou clique em Instance Management na coluna Actions.

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

  2. Na aba Index Management, localize o Search Index desejado e clique em Search na coluna Actions.

  3. Na caixa de diálogo Search, configure a consulta.

    1. Por padrão, todas as colunas são retornadas. Para retornar colunas específicas, desative 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.

      Se selecionar And, a consulta retorna dados que atendem a todas as condições especificadas. Ao escolher Or, a consulta retorna dados que atendem a pelo menos uma das condições. Caso selecione Not, a consulta retorna dados que não atendem às condições especificadas.

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

    4. Defina o tipo de consulta para o campo de índice como WildcardQuery e insira um valor que contenha curingas.

    5. A ordenação vem desativada por padrão. Para classificar os resultados por um campo específico, ative Enable Sorting, adicione o campo de ordenação e configure a ordem de classificação.

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

  4. Clique em OK.

    Os resultados da consulta são exibidos na aba Index Management.

Usar a ferramenta de linha de comando

Execute o comando search na ferramenta de linha de comando (CLI) para consultar dados usando um Search Index. Para mais informações, consulte Search Index.

Importante

Atualmente, a CLI suporta WildcardQuery apenas para o tipo Keyword, e não para o tipo FuzzyKeyword.

  1. Execute o comando search para consultar dados na tabela usando o Search Index search_index, o que retorna todas as colunas indexadas.

    search -n search_index --return_all_indexed
  2. Insira as condições de consulta conforme solicitado. O código abaixo fornece um exemplo:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "WildcardQuery",
            "Query": {
                "FieldName": "col_keyword",
                "Value": "hang*u"
            }
        }
    }

Usar um SDK

Execute uma consulta com curinga utilizando o SDK para Java, SDK para Go, SDK para Python, SDK para Node.js, SDK para .NET ou SDK para PHP. Esta seção usa o SDK para Java como exemplo.

Nota

A instrução de consulta é idêntica para os tipos Keyword e FuzzyKeyword. A única diferença reside no tipo de dado da coluna consultada.

O código de exemplo a seguir mostra como consultar linhas nas quais o valor da coluna Col_Keyword corresponde ao padrão "hang*u".

/**
 * Search the table for rows in which the value of the Col_Keyword column matches the "hang*u" pattern. 
 * @param client
 */
private static void wildcardQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    WildcardQuery wildcardQuery = new WildcardQuery(); // Use WildcardQuery. 
    wildcardQuery.setFieldName("Col_Keyword");
    wildcardQuery.setValue("hang*u"); // Specify a string that contains one or more wildcard characters in wildcardQuery. 
    searchQuery.setQuery(wildcardQuery);
    //searchQuery.setGetTotalCount(true); // Specify that the total number of matched rows is returned. 

    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
    // You can configure the columnsToGet parameter to specify the columns to return or specify that all columns are returned. If you do not configure this parameter, only the primary key columns are returned. 
    //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    //columnsToGet.setReturnAll(true); // Specify that all columns are returned. 
    //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Specify the columns that you want to return. 
    //searchRequest.setColumnsToGet(columnsToGet);

    SearchResponse resp = client.search(searchRequest);
    //System.out.println("TotalCount: " + resp.getTotalCount()); // Display the total number of matched rows instead of the number of returned rows. 
    System.out.println("Row: " + resp.getRows());
}

Faturamento

A consulta de 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