Todos os produtos
Search
Central de documentação

Tablestore:Executar uma consulta de correspondência

Última atualização: Sep 22, 2026

Use uma consulta de correspondência para consultar dados em uma tabela com base em correspondências aproximadas. O Tablestore tokeniza os valores das colunas do tipo TEXT e as palavras-chave usadas nas consultas de correspondência com base no analisador especificado. Assim, o Tablestore executa consultas de correspondência com base nos tokens. Recomendamos chamar a operação MatchPhraseQuery para executar consultas de frase de correspondência em colunas com tokenização fuzzy, garantindo alto desempenho.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

table_name

O nome da tabela de dados.

index_name

O nome do índice de pesquisa.

offset

A posição a partir da qual a consulta atual começa.

limit

O número máximo de linhas que a consulta atual deve retornar.

Para consultar apenas o número de linhas que atendem às condições da consulta, sem consultar os dados específicos das linhas, defina o parâmetro limit como 0.

get_total_count

Especifica se a consulta deve retornar o número total de linhas que atendem às condições. Valor padrão: false, que indica que o número total de linhas não é retornado.

Se você definir este parâmetro como true, o desempenho da consulta será comprometido.

query_type

O tipo da consulta. Defina este parâmetro como QueryTypeConst::MATCH_QUERY.

field_name

O nome da coluna que você deseja consultar.

A coluna pode ser do tipo TEXT.

text

A palavra-chave usada para corresponder ao valor da coluna durante uma consulta de correspondência.

Se a coluna consultada for do tipo TEXT, a palavra-chave é tokenizada em vários tokens com base no tipo de analisador especificado ao criar o índice de pesquisa. Por padrão, o sistema executa a tokenização de palavra única se você não especificar o tipo de analisador ao criar o índice de pesquisa.

Por exemplo, se a coluna consultada for do tipo TEXT e o tipo de analisador for de tokenização de palavra única, ao executar uma consulta de correspondência com a frase "this is", serão retornados resultados como "..., this is tablestore", "is this tablestore", "tablestore is cool", "this" e "is".

operator

O operador lógico. Por padrão, o operador lógico é OR, o que significa que uma linha atende às condições da consulta quando o valor da coluna contém pelo menos o número mínimo de tokens.

Defina o operador como AND para que a linha atenda às condições da consulta apenas quando o valor da coluna contiver todos os tokens.

minimum_should_match

O número mínimo de tokens correspondentes contidos no valor da coluna.

Uma linha é retornada apenas quando o valor da coluna consultada nessa linha contém pelo menos o número mínimo de tokens correspondentes.

Nota

O parâmetro minimum_should_match deve ser usado em conjunto com o operador lógico OR.

columns_to_get

Especifica se a consulta deve retornar todas as colunas das linhas que atendem às condições. Para isso, especifique os parâmetros return_type e return_names.

  • Defina return_type como ColumnReturnTypeConst::RETURN_SPECIFIED e especifique as colunas a serem retornadas usando return_names.

  • Defina o parâmetro return_type como ColumnReturnTypeConst::RETURN_ALL para retornar todas as colunas.

  • Defina return_type como ColumnReturnTypeConst::RETURN_ALL_FROM_INDEX para retornar todas as colunas do índice de pesquisa.

  • Defina o parâmetro return_type como ColumnReturnTypeConst::RETURN_NONE para retornar apenas as colunas de chave primária.

Exemplo

O código de exemplo a seguir mostra como usar o SDK para consultar as linhas nas quais o valor da coluna text corresponde a "ots text php keyword" da tabela de dados.

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 2,
        'get_total_count' => true,
        'query' => array(
            'query_type' => QueryTypeConst::MATCH_QUERY,
            'query' => array(
                'field_name' => 'text',
                'text' => 'ots text php keyword',
//              'operator' => QueryOperatorConst::PBAND,
                'operator' => QueryOperatorConst::PBOR,// Use the minimum_should_match parameter together with the OR logical operator. 
                'minimum_should_match' => 3
            )
        ),
        'sort' => array(
            array(
                'field_sort' => array(
                    'field_name' => 'keyword',
                    'order' => SortOrderConst::SORT_ORDER_ASC
                )
            ),
        )
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('text')
    )
);
$response = $otsClient->search($request);

FAQ

Referências