Todos os produtos
Search
Central de documentação

Tablestore:Consulta de correspondência

Última atualização: Jul 03, 2026

Use a consulta de correspondência para buscar dados em uma tabela com base em correspondências aproximadas. O Tablestore tokeniza os valores do campo TEXT e a palavra-chave usada na consulta conforme o tipo de analisador especificado. Assim, o Tablestore executa a consulta com base nos tokens gerados. Para campos TEXT que utilizam tokenização difusa, recomenda-se o uso da consulta de correspondência de frase (match phrase query) para garantir alto desempenho nas buscas.

Cenários

A consulta de correspondência permite localizar dados que contenham uma frase específica. Combine essa consulta com a tokenização para realizar buscas de texto completo em cenários como análise de big data, busca de conteúdo, gestão de conhecimento, análise de redes sociais, análise de logs, sistemas inteligentes de perguntas e respostas e revisão de conformidade. Por exemplo, em plataformas de e-commerce, obtenha rapidamente listas de produtos cujo título, descrição ou tags contenham determinada palavra-chave. Em logs, identifique mensagens de erro ou operações suspeitas com agilidade.

Recursos

Essa funcionalidade busca dados na tabela por meio de correspondências aproximadas. Suponha que uma linha tenha o valor "Hangzhou West Lake Scenic Area" em uma coluna do tipo TEXT e que a tokenização de palavra única esteja ativa. Se a palavra-chave da consulta for "Lake Scenic", essa linha atenderá aos critérios de busca.

Ao configurar a consulta, especifique o nome do campo e a palavra-chave desejada. A linha será retornada se pelo menos um dos seus tokens corresponder aos tokens da palavra-chave.

Durante a execução, defina também o número mínimo de tokens correspondentes no valor do campo, o peso atribuído ao campo para calcular a pontuação de relevância BM25, as colunas de retorno, a opção de exibir a contagem total de linhas correspondentes e o método de ordenação dos resultados.

Operação de API

Para executar uma consulta de correspondência, chame a operação Search ou ParallelScan e defina o tipo de consulta como MatchQuery.

Parâmetros

Parâmetro

Descrição

fieldName

Nome do campo a ser consultado.

A consulta de correspondência aplica-se a campos do tipo TEXT.

text

Palavra-chave utilizada para comparar com o valor do campo durante a consulta.

Caso o campo seja do tipo TEXT, a palavra-chave será dividida em múltiplos tokens conforme o analisador definido na criação do índice de busca. Sem essa definição, o sistema aplica a tokenização de palavra única.

Por exemplo, se o campo for TEXT, o analisador for de palavra única e a palavra-chave de busca for "this is", os resultados podem incluir "..., this is tablestore", "is this tablestore", "tablestore is cool", "this" e "is".

query

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

offset

Posição inicial da consulta atual.

limit

Quantidade máxima de linhas a serem retornadas pela consulta.

Defina limit como 0 caso precise apenas da contagem de linhas correspondentes, sem recuperar os dados em si.

minimumShouldMatch

Número mínimo de tokens correspondentes exigidos no valor do campo.

O sistema retorna a linha somente se o valor do campo indicado em fieldName contiver pelo menos essa quantidade mínima de tokens.

Nota

Use o parâmetro minimumShouldMatch sempre em conjunto com o operador lógico OR.

operator

Operador lógico. O padrão é OR, indicando que a linha atende à consulta quando o valor da coluna contém pelo menos o número mínimo de tokens correspondentes.

Se definir operator como AND, a linha só será considerada válida se o valor da coluna contiver todos os tokens correspondentes.

getTotalCount

Define se o sistema deve retornar a contagem total de linhas correspondentes. O valor padrão é false, ou seja, a contagem total não é retornada.

Ativar essa opção (true) pode reduzir o desempenho da consulta.

weight

Peso atribuído ao campo consultado para o cálculo da pontuação de relevância BM25. Esse parâmetro é comum em cenários de busca de texto completo. Quanto maior o peso, maior a pontuação de relevância BM25 do campo. Aceita números de ponto flutuante positivos.

Esse valor não altera a quantidade de linhas retornadas, mas influencia diretamente a pontuação de relevância BM25 dos resultados.

tableName

Nome da tabela de dados.

indexName

Nome do índice de busca.

columnsToGet

Indica se todas as colunas das linhas correspondentes devem ser retornadas. Configure os campos returnAll e columns dentro de columnsToGet.

O campo returnAll tem como padrão false, o que impede o retorno de todas as colunas. Nesse caso, use o campo columns para listar as colunas desejadas. Sem essa especificação, apenas as colunas de chave primária serão retornadas.

Defina returnAll como true para retornar todas as colunas.

Observações

O Search Index oferece apenas pontuação de relevância BM25 básica e não suporta modelos personalizados de relevância.

Métodos

Execute consultas de correspondência pelo console do Tablestore, Tablestore CLI ou SDKs do Tablestore. Antes de iniciar, certifique-se de cumprir os seguintes pré-requisitos:

Usar o console do Tablestore

  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 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 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, especifique as condições de consulta.

    1. Todas as colunas são retornadas por padrão. Para selecionar colunas específicas, desative Retrieve All Columns e insira os nomes das colunas separados por vírgula.

      Nota

      Por padrão, o Table Store retorna as colunas de chave primária da tabela de dados.

    2. Escolha um operador lógico: And, Or ou Not.

      A opção And retorna dados que atendem a todas as condições. Já Or traz resultados que satisfazem pelo menos uma condição. Por fim, Not exclui os dados que correspondem às condições definidas.

    3. Selecione um campo do tipo TEXT e clique em Add.

    4. Defina o parâmetro Query Type como MatchQuery(MatchQuery) e insira o valor a ser buscado.

    5. A ordenação vem desativada por padrão. Caso precise ordenar por um campo específico, ative Enable Sorting, adicione o campo de ordenação e configure a ordem desejada.

    6. A agregação também permanece desativada inicialmente. Para aplicar agregações estatísticas em um campo, ative Enable Aggregation, inclua o campo alvo e ajuste as configurações de agregação.

  4. Clique em OK.

    Os resultados aparecerão na aba Index Management.

Usar o Tablestore CLI

Com o Tablestore CLI, execute o comando search para consultar dados por meio de índices de busca. Consulte Índices de busca para mais informações.

  1. Execute o comando search usando o índice search_index para consultar dados e retornar todas as colunas indexadas das linhas correspondentes.

    search -n search_index --return_all_indexed
  2. Insira as condições de consulta conforme solicitado:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "MatchQuery",
            "Query": {
                "FieldName": "col_text",
                "Text": "this is",
                "MinimumShouldMatch": 1
            }
        }
    }

Usar SDKs do Tablestore

Realize consultas de correspondência usando os seguintes SDKs do Tablestore: Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET e Tablestore SDK for PHP. O exemplo abaixo usa o Tablestore SDK for Java.

/**
 * Run a match query on Col_Keyword for the token "hangzhou".
 * Returns matched rows and, optionally, the total match count.
 */
private static void matchQuery(SyncClient client) {
    MatchQuery matchQuery = new MatchQuery();
    matchQuery.setFieldName("Col_Keyword"); // Column to search
    matchQuery.setText("hangzhou");         // Query string (tokenized before matching)

    SearchQuery searchQuery = new SearchQuery();
    searchQuery.setQuery(matchQuery);
    searchQuery.setOffset(0);  // Starting position for pagination
    searchQuery.setLimit(20);  // Maximum rows to return
    // searchQuery.setGetTotalCount(true); // Uncomment to include total match count in the response

    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
    // By default, only primary key columns are returned.
    // To return additional columns, configure ColumnsToGet:
    // SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    // columnsToGet.setReturnAll(true);                                    // Return all columns
    // columnsToGet.setColumns(Arrays.asList("ColName1", "ColName2"));     // Return specific columns
    // searchRequest.setColumnsToGet(columnsToGet);

    SearchResponse resp = client.search(searchRequest);
    // System.out.println("TotalCount: " + resp.getTotalCount()); // Total matches (not just returned rows)
    System.out.println("Row: " + resp.getRows());
}

Faturamento

Consultas de dados via Search Index consomem throughput de leitura. Para mais informações, veja Medição e faturamento do Search Index.

Perguntas frequentes

Referências