Todos os produtos
Search
Central de documentação

Tablestore:Wildcard query

Última atualização: Sep 29, 2026

A consulta com curinga (WildcardQuery) executa uma consulta difusa, semelhante ao operador LIKE em um banco de dados.

Nota

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

Visão geral

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

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

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

  • Keyword: Tipo de dados de string básico. O desempenho de consultas difusas, como uma consulta com curinga, em campos Keyword é ruim para grandes conjuntos de dados e se degrada à medida que o volume de dados aumenta.

  • FuzzyKeyword: Tipo de dados otimizado para consultas difusas, como consultas com curinga. Oferece um desempenho superior e estável que não se degrada significativamente à medida que o tamanho do conjunto de dados aumenta.

O Search Index fornece três tipos de consultas com curinga para atender a vários requisitos de correspondência difusa. Para mais informações, consulte a tabela a seguir.

Nota

Este tópico descreve como executar uma WildcardQuery em campos dos tipos Keyword e FuzzyKeyword. Para saber mais sobre como implementar consultas difusas 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 o Elasticsearch.

O desempenho da consulta se degrada à medida que a quantidade de dados indexados aumenta.

FuzzyKeyword

WildcardQuery

Oferece um desempenho superior e estável que não se degrada significativamente à medida que 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.

Notas de uso

O termo de consulta em uma WildcardQuery não pode exceder 32 caracteres para campos Keyword e 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

O nome da coluna a ser consultada.

value

A string com curingas, limitada a 32 caracteres.

query

O tipo de consulta. Defina este parâmetro como WildcardQuery.

getTotalCount

Define se a consulta 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

O peso da consulta. É um número de ponto flutuante positivo usado para classificação por pontuação em pesquisas de texto completo. Um peso maior atribui uma pontuação mais alta à coluna nos resultados da consulta.

Este parâmetro afeta a pontuação dos resultados, mas não a quantidade de linhas retornadas.

tableName

O nome da tabela de dados.

indexName

O nome do Search Index.

columnsToGet

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

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

Se returnAll for true, todas as colunas serão retornadas.

Como usar

Execute 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, uma WildcardQuery em um campo FuzzyKeyword é suportada apenas por meio de 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 no nome da instância ou clique em Instance Management na coluna Actions.

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

  2. Na aba Index Management, localize o Search Index de destino e clique em Manage Data 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 retornará dados que atendem a todas as condições especificadas. Se selecionar Or, a consulta retornará dados que atendem a pelo menos uma das condições especificadas. Se selecionar Not, a consulta retornará 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. Por padrão, a classificação está desativada. Para classificar os resultados por um campo específico, ative Enable Sorting, adicione o campo de classificaçã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 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 em uma ferramenta de linha de comando (CLI) para consultar dados usando um Search Index. Para mais informações, consulte Search Index.

Importante

A CLI atualmente 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, 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 a seguir 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 usando o Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK ou PHP SDK. Esta seção usa o Java SDK como exemplo.

Nota

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

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());

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