Todos os produtos
Search
Central de documentação

Tablestore:Match query

Última atualização: Aug 20, 2026

A consulta match no Tablestore SDK for Java pesquisa campos Text ou Keyword e retorna linhas que atendem às condições de correspondência com pontuações de relevância.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize o cliente.

Descrição do recurso

A consulta match pesquisa campos Text ou Keyword. Para obter informações sobre os tipos de campo, consulte String types. Esses dois tipos de campo apresentam comportamentos de correspondência diferentes:

  • Text: O analisador configurado durante a criação do índice de pesquisa analisa o valor do campo e o texto da consulta. Caso nenhum analisador esteja definido, o sistema usa a tokenização por palavra única por padrão. O operador padrão OR corresponde a um valor de campo que contenha qualquer token da consulta. Use o operador AND para exigir todos os tokens da consulta ou especifique o número mínimo de tokens que devem corresponder.

  • Keyword: O sistema não analisa o valor do campo nem o texto da consulta. Uma linha só corresponde se o valor completo do campo for igual ao texto da consulta.

Na consulta match, os tokens correspondentes não precisam ser adjacentes nem seguir a mesma ordem do texto da consulta. Para corresponder tokens em ordem, utilize uma match phrase query. Se um campo Text usar o analisador fuzzy e você precisar de uma pesquisa fuzzy de alto desempenho, também recomendamos a consulta match phrase.

O exemplo a seguir pesquisa linhas cujo campo description contém o token tablestore ou durable, retornando até 10 linhas, o total de linhas correspondentes e as pontuações de relevância.

String tableName = "example_table";
String indexName = "example_index";

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore durable");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);
searchQuery.setSort(new Sort(Collections.singletonList(new ScoreSort())));
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);
for (SearchHit hit : response.getSearchHits()) {
    System.out.println(hit.getRow());
    System.out.println(hit.getScore());
}

Parâmetros

Solicitação de pesquisa

request é um objeto SearchRequest que contém os seguintes parâmetros.

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela.

indexName (obrigatório)

String

Nome do índice de pesquisa.

searchQuery (obrigatório)

SearchQuery

Condição de consulta e configurações gerais da pesquisa.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

Configurações das colunas retornadas. Se você omitir este parâmetro, o sistema retornará apenas as colunas de chave primária.

timeoutInMillisecond (opcional)

int

Tempo limite da consulta no nível da solicitação, em milissegundos. O valor padrão é -1, que não define um tempo limite específico para a consulta.

routingValues (opcional)

List<PrimaryKey>

Valores de chave primária para campos de roteamento personalizado. Omita este parâmetro se o índice não utilizar roteamento personalizado.

Configurações da consulta

request.searchQuery é um objeto SearchQuery que contém os seguintes parâmetros.

Nome

Tipo

Descrição

query (obrigatório)

Query

Condição da consulta. Defina este parâmetro como MatchQuery para executar uma consulta match.

offset (opcional)

Integer

Posição inicial da consulta.

limit (opcional)

Integer

Número máximo de linhas a retornar. Defina este parâmetro como 0 para não retornar nenhuma linha.

highlight (opcional)

Highlight

Configurações de resumo e destaque para campos Text. Para detalhes de configuração, consulte Summary and highlighting.

collapse (opcional)

Collapse

Configurações de colapso de campos, que removem duplicatas dos resultados com base em um campo especificado. Para detalhes de configuração, consulte Collapse query results.

sort (opcional)

Sort

Ordem de classificação dos resultados. Para detalhes de configuração, consulte Sort and paginate results.

trackTotalCount (opcional)

int

Contagem máxima esperada de linhas correspondentes. O valor padrão é TRACK_TOTAL_COUNT_DISABLED, que desativa a contagem. Defina este parâmetro como TRACK_TOTAL_COUNT para contar todas as linhas correspondentes. Um valor menor melhora o desempenho da consulta.

filter (opcional)

SearchFilter

Filtro aplicado aos resultados da query.

aggregationList (opcional)

List<Aggregation>

Configurações de agregação. Para detalhes de configuração, consulte Aggregation.

groupByList (opcional)

List<GroupBy>

Configurações de agrupamento. Para detalhes de configuração, consulte Aggregation.

token (opcional)

byte[]

Token de paginação. Defina este parâmetro com o valor nextToken da resposta anterior para continuar a leitura das linhas. Ao definir token, o SDK limpa sort, pois o token já contém as condições de ordenação.

Condição de correspondência

request.searchQuery.query é um objeto MatchQuery que contém os seguintes parâmetros.

Nome

Tipo

Descrição

fieldName (obrigatório)

String

Nome do campo de índice Text ou Keyword a consultar.

text (obrigatório)

String

Texto da consulta. Para um campo Text, o analisador do campo processa o texto. Em campos Keyword, o texto da consulta não passa por análise.

operator (opcional)

QueryOperator

Operador usado para combinar os tokens da consulta. OR (padrão) corresponde a uma linha se qualquer token coincidir. AND exige que todos os tokens correspondam.

minShouldMatch (opcional)

String ou int

Número mínimo de tokens da consulta que devem corresponder quando o operator for OR. Especifique um número inteiro, como 2, ou uma string de porcentagem, como "75%".

weight (opcional)

float

Peso da consulta. O valor padrão é 1.0 e deve ser um número de ponto flutuante positivo. Um valor maior aumenta a contribuição desta consulta para a pontuação de relevância, sem alterar o escopo de correspondência.

Importante

O método setMinimumShouldMatch(Integer) está obsoleto. Utilize setMinShouldMatch(int) ou setMinShouldMatch(String).

Colunas retornadas

request.columnsToGet é um objeto SearchRequest.ColumnsToGet que contém os seguintes parâmetros.

Nome

Tipo

Descrição

columns (opcional)

List<String>

Colunas de atributo a retornar. Defina este parâmetro somente se tanto returnAll quanto returnAllFromIndex forem false. Se omitido, o sistema retornará apenas as colunas de chave primária.

returnAll (opcional)

boolean

Indica se o sistema deve retornar todas as colunas de atributo da tabela. O valor padrão é false.

returnAllFromIndex (opcional)

boolean

Indica se o sistema deve retornar todas as colunas de atributo indexadas. O valor padrão é false. Este parâmetro e returnAll não podem ser ambos true.

Valores de retorno

Resposta da consulta

O método search retorna um objeto SearchResponse. A tabela a seguir descreve os principais campos.

Nome

Tipo

Descrição

totalCount

long

Quantidade de linhas correspondentes. Chame getTotalCount() para obter o valor. O resultado depende da configuração trackTotalCount.

rows

List<Row>

Linhas retornadas na resposta atual. Chame getRows() para obter o valor. A quantidade de linhas não excede limit.

searchHits

List<SearchHit>

Resultados da consulta. Chame getSearchHits() para obter o valor. Este campo inclui pontuações de relevância, além de resultados de resumo e destaque.

nextToken

byte[]

Token da próxima página. Chame getNextToken() para obter o valor. Se o valor não for null, defina-o como token na próxima solicitação para continuar lendo as linhas.

isAllSuccess

boolean

Indica se todas as partições do índice foram consultadas com sucesso. Chame isAllSuccess() para obter o valor. Se o valor for false, a resposta conterá resultados parciais e totalCount poderá ser inferior ao número real de linhas correspondentes.

Resultado da consulta

response.searchHits[] é um objeto SearchHit que contém os seguintes campos principais.

Nome

Tipo

Descrição

row

Row

Linha correspondente. Chame getRow() para obter o valor.

score

Double

Pontuação de relevância. Chame getScore() para obter o valor. Quando ScoreSort é utilizado, este campo contém a pontuação real. Os tokens correspondentes e o weight influenciam a pontuação.

highlightResultItem

HighlightResultItem

Resultado de resumo e destaque. Chame getHighlightResultItem() para obter o valor.

Exemplos

Corresponder a todos os tokens da consulta

Defina operator como AND para corresponder a uma linha apenas se o valor do campo contiver todos os tokens da consulta.

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore durable");
matchQuery.setOperator(QueryOperator.AND);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);

Definir o número mínimo de tokens correspondentes

Ao usar o operador OR, defina minShouldMatch para especificar o número mínimo de tokens da consulta que devem corresponder. O exemplo abaixo exige pelo menos dois tokens correspondentes.

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore durable cloud");
matchQuery.setOperator(QueryOperator.OR);
matchQuery.setMinShouldMatch(2);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);