Todos os produtos
Search
Central de documentação

Tablestore:Consulta com curinga

Última atualização: Jul 03, 2026

Em uma consulta com curinga, use os caracteres curinga asterisco () e ponto de interrogação (?) para pesquisar dados. O asterisco () corresponde a uma string de qualquer comprimento no início, meio ou fim do termo de pesquisa. O ponto de interrogação (?) substitui um único caractere em uma posição específica. A string pode começar com asterisco () ou ponto de interrogação (?). Por exemplo, ao pesquisar pela string "tablee", o termo "tablestore" será encontrado.

Se o padrão de consulta for *word* (equivalente a WHERE field_a LIKE '%word%' em SQL), utilize o recurso de Consultas com curinga baseadas em token para obter melhor desempenho. Esse método mantém a performance mesmo com o aumento do volume de dados.

Nota

Para executar uma busca NOT LIKE, use um WildcardQuery combinado ao parâmetro mustNotQueries de um BoolQuery. Para mais detalhes, consulte Consultas combinadas.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

TableName

Nome da tabela de dados.

IndexName

Nome do índice de pesquisa.

query

Tipo da consulta. Defina como WildcardQuery.

FieldName

Nome da coluna a ser consultada.

Value

String contendo caracteres curinga. O tamanho máximo permitido é de 32 caracteres.

ColumnsToGet

Define se todas as colunas de cada linha correspondente devem ser retornadas.

Por padrão, ReturnAll é false, indicando que nem todas as colunas são devolvidas. Quando ReturnAll é false, utilize ColumnsToGet para especificar quais colunas retornar. Caso nenhuma coluna seja definida, apenas as colunas de chave primária serão incluídas no resultado.

Ao definir ReturnAll como true, o sistema retorna todas as colunas disponíveis.

Código de exemplo

O exemplo abaixo demonstra como pesquisar na tabela linhas em que o valor da coluna Col_Keyword corresponda a "hang*u":

/**
 * Search the table for rows in which the value of the Col_Keyword column matches "hang*u". 
 */
func WildcardQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
    searchRequest := &tablestore.SearchRequest{}
    searchRequest.SetTableName(tableName)
    searchRequest.SetIndexName(indexName)
    query := &search.WildcardQuery{} // Set the query type to WildcardQuery. 
    query.FieldName = "Col_Keyword"
    query.Value = "hang*u"
    searchQuery := search.NewSearchQuery()
    searchQuery.SetQuery(query)
    searchRequest.SetSearchQuery(searchQuery)
    // Return all columns in the rows that meet the query conditions. 
    searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
        ReturnAll:true,
    })
    searchResponse, err := client.Search(searchRequest)
    if err != nil {
        fmt.Printf("%#v", err)
        return
    }
    fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) // Check whether all rows that meet the query conditions are returned. 
    fmt.Println("TotalCount: ", searchResponse.TotalCount) // Specify that the total number of matched rows instead of the number of returned rows is displayed. 
    fmt.Println("RowCount: ", len(searchResponse.Rows))
    for _, row := range searchResponse.Rows {
        jsonBody, err := json.Marshal(row)
        if err != nil {
            panic(err)
        }
        fmt.Println("Row: ", string(jsonBody))
    }
}

Perguntas frequentes

Referências