Todos os produtos
Search
Central de documentação

Tablestore:Match phrase query

Última atualização: Jul 27, 2026

A consulta de correspondência de frase com o Tablestore SDK for Java pesquisa um campo Text com base na ordem e nas posições dos tokens. Ela retorna as linhas que atendem à condição da frase, juntamente com as pontuações de relevância.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize o cliente.

Descrição do recurso

A consulta de correspondência de frase busca tokens consecutivos, na ordem e nas posições especificadas, em um campo Text. Para obter informações sobre o tipo de campo, consulte String types. O analisador configurado durante a criação do índice de pesquisa processa o valor do campo e o texto da consulta. Se nenhum analisador estiver definido, o sistema usará a tokenização por palavra única por padrão.

Esse tipo de consulta exige que todos os tokens da busca apareçam na mesma ordem e em posições adjacentes. Por exemplo, o texto de consulta this is corresponde a this is tablestore, mas não corresponde a this table is nem a is this a table. Já uma match query verifica apenas se há correspondência entre os tokens, sem exigir adjacência ou a mesma ordem do texto pesquisado.

Se um campo Text usar o analisador difuso, a consulta de correspondência de frase oferecerá uma correspondência aproximada semelhante à wildcard query, porém com menor latência.

O exemplo a seguir pesquisa linhas cujo campo description contém os tokens tablestore e durable de forma consecutiva e ordenada. A consulta retorna até 10 linhas, o total de linhas correspondentes e as pontuações de relevância.

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

MatchPhraseQuery matchPhraseQuery = new MatchPhraseQuery();
matchPhraseQuery.setFieldName("description");
matchPhraseQuery.setText("tablestore durable");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchPhraseQuery);
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

O objeto request é do tipo SearchRequest e 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 indica ausência de tempo limite específico.

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 de consulta

O objeto request.searchQuery é do tipo SearchQuery e contém os seguintes parâmetros:

Nome

Tipo

Descrição

query (obrigatório)

Query

Condição da consulta. Defina este parâmetro como MatchPhraseQuery para executar uma consulta de correspondência de frase.

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 e limites, consulte Summary and highlighting.

collapse (opcional)

Collapse

Configurações de colapso de campos, que deduplicam os 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 o parâmetro sort, pois o token já contém as condições de classificação.

Condição de correspondência de frase

O objeto request.searchQuery.query é do tipo MatchPhraseQuery e contém os seguintes parâmetros:

Nome

Tipo

Descrição

fieldName (obrigatório)

String

Nome do campo de índice Text a consultar.

text (obrigatório)

String

Texto da consulta. O analisador do campo processa o texto e realiza a correspondência com base na ordem e nas posições dos tokens.

weight (opcional)

float

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

Colunas retornadas

O objeto request.columnsToGet é do tipo SearchRequest.ColumnsToGet e contém os seguintes parâmetros:

Nome

Tipo

Descrição

columns (opcional)

List<String>

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

returnAll (opcional)

boolean

Indica se todas as colunas de atributo da tabela devem ser retornadas. O valor padrão é false.

returnAllFromIndex (opcional)

boolean

Indica se todas as colunas de atributo indexadas devem ser retornadas. O valor padrão é false. Este parâmetro e returnAll não podem ser true simultaneamente.

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 esse valor. O resultado depende da configuração de trackTotalCount.

rows

List<Row>

Linhas retornadas na resposta atual. Chame getRows() para obter esse valor. O número de linhas não excede o limit.

searchHits

List<SearchHit>

Resultados da consulta. Chame getSearchHits() para obter esse 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 esse valor. Se o valor não for null, use-o como token na próxima solicitação para continuar a leitura das linhas.

isAllSuccess

boolean

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

Resultado da consulta

O objeto response.searchHits[] é do tipo SearchHit e contém os seguintes campos principais:

Nome

Tipo

Descrição

row

Row

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

score

Double

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

highlightResultItem

HighlightResultItem

Resultado do resumo e destaque. Chame getHighlightResultItem() para obter esse valor.