Todos os produtos
Search
Central de documentação

Tablestore:Executar uma match query

Última atualização: Jul 03, 2026

A match query permite 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 conforme o analisador especificado. Assim, o Tablestore executa match queries com base nos tokens gerados. Para garantir alto desempenho em consultas difusas, recomendamos chamar a operação MatchPhraseQuery ao executar match phrase queries em colunas que utilizam tokenização difusa.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela de dados.

index_name

Nome do search index.

offset

Posição inicial da consulta atual.

limit

Número máximo de linhas a retornar na consulta atual.

Para obter apenas a contagem de linhas que atendem aos critérios de consulta, sem recuperar os dados específicos, defina o parâmetro limit como 0.

get_total_count

Indica se o sistema deve retornar o número total de linhas correspondentes aos critérios de consulta. Valor padrão: false (a contagem total não é retornada).

Definir este parâmetro como true pode comprometer o desempenho da consulta.

query_type

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

field_name

Nome da coluna a consultar.

A coluna pode ser do tipo TEXT.

text

Palavra-chave usada para corresponder ao valor da coluna durante a match query.

Se a coluna consultada for do tipo TEXT, a palavra-chave será dividida em múltiplos tokens conforme o tipo de analisador definido na criação do search index. Caso nenhum analisador tenha sido especificado, a tokenização por palavra única é aplicada por padrão.

Por exemplo, se a coluna for do tipo TEXT e o analisador utilizado for o de palavra única, ao buscar pela frase "this is", os resultados podem incluir "..., this is tablestore", "is this tablestore", "tablestore is cool", "this" e "is".

operator

Operador lógico. Por padrão, utiliza-se OR, indicando que uma linha atende aos critérios quando o valor da coluna contém pelo menos o número mínimo de tokens correspondentes.

Ao definir o operador como AND, a linha só será considerada correspondente se o valor da coluna contiver todos os tokens.

minimum_should_match

Quantidade mínima de tokens correspondentes que devem estar presentes no valor da coluna.

Uma linha só é retornada quando o valor da coluna consultada contém, no mínimo, essa quantidade de tokens correspondentes.

Nota

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

columns_to_get

Define se todas as colunas das linhas correspondentes devem ser retornadas. Configure isso através dos parâmetros return_type e return_names.

  • Se return_type for definido como ColumnReturnTypeConst::RETURN_SPECIFIED, use return_names para indicar quais colunas retornar.

  • Quando return_type é configurado como ColumnReturnTypeConst::RETURN_ALL, todas as colunas são retornadas.

  • Caso return_type seja ColumnReturnTypeConst::RETURN_ALL_FROM_INDEX, todas as colunas presentes no search index serão retornadas.

  • Se return_type for ColumnReturnTypeConst::RETURN_NONE, apenas as colunas de chave primária são retornadas.

Exemplo

O código de exemplo abaixo demonstra como consultar linhas na tabela de dados onde o valor da coluna text corresponde a "ots text php keyword".

$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

  • Ao utilizar um search index para consultar dados, você tem à disposição os seguintes métodos: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query e exists query. Combine diferentes métodos para atender às necessidades específicas do seu negócio e consultar dados sob múltiplas dimensões.

    Para ordenar ou paginar as linhas resultantes da consulta, utilize o recurso de ordenação e paginação. Para mais detalhes, consulte Ordenação e paginação.

    Caso precise agrupar o conjunto de resultados com base em uma coluna específica, use o recurso de collapse (distinct). Isso garante que dados do tipo especificado apareçam apenas uma vez nos resultados. Para mais informações, consulte Collapse (distinct).

  • Para analisar dados em uma tabela, como obter valores extremos, somas ou contagens totais de linhas, execute operações de agregação ou instruções SQL. Consulte Agregação e Consulta SQL para mais detalhes.

  • Se o objetivo for obter rapidamente todas as linhas correspondentes sem necessidade de ordenação, chame as operações ParallelScan e ComputeSplits para utilizar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.