Todos os produtos
Search
Central de documentação

Tablestore:Summary and highlighting

Última atualização: Jul 27, 2026

Use o recurso de resumo e destaque com o Tablestore SDK for Java para retornar fragmentos de campos Text que contenham termos correspondentes e marcar esses termos com as tags configuradas.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize um cliente.

Descrição do recurso

O recurso de resumo e destaque extrai fragmentos de texto ao redor dos termos correspondentes a uma consulta e os envolve em pré-tags e pós-tags. Use esses fragmentos para exibir o contexto das correspondências da consulta. Este recurso oferece suporte apenas a campos Text.

Antes de usar o resumo e destaque, defina enableHighlighting como true para o campo durante a crie um índice de pesquisa. Em uma consulta, use SearchQuery.highlight para especificar os campos cujos fragmentos você deseja retornar e as configurações desses fragmentos. O campo deve ser usado em uma condição de consulta compatível com resumo e destaque. Caso contrário, nenhum fragmento destacado será retornado para esse campo.

Os seguintes tipos de consulta podem retornar resultados de resumo e destaque: TermQuery, TermsQuery, MatchQuery, MatchPhraseQuery, PrefixQuery, WildcardQuery, RangeQuery, BoolQuery, ConstScoreQuery e NestedQuery.

Para BoolQuery ou ConstScoreQuery, configure o resumo e destaque nos campos usados pelas consultas filhas dos sete tipos mencionados anteriormente. Para NestedQuery, configure InnerHits.highlight para retornar resultados de resumo e destaque das linhas filhas correspondentes. Para mais informações, consulte Nested query.

Nota
  • Ao usar MatchQuery ou MatchPhraseQuery, um termo correspondente pode ser envolvido por múltiplos pares de pré-tags e pós-tags.

  • Se a tokenização semântica máxima estiver ativada para um campo Text, o MatchPhraseQuery não oferecerá suporte a resumo e destaque.

  • O limite de um fragmento pode dividir um termo correspondente. Nesse caso, o termo não será destacado.

O exemplo a seguir usa uma consulta de correspondência (match query) para recuperar linhas nas quais o campo description contém o termo tablestore. O exemplo envolve os termos correspondentes nos fragmentos retornados com <b> e </b>. O campo description é um campo Text com resumo e destaque habilitados.

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

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

HighlightParameter highlightParameter = new HighlightParameter();
highlightParameter.setPreTag("<b>");
highlightParameter.setPostTag("</b>");

Highlight highlight = new Highlight();
highlight.addFieldHighlightParam("description", highlightParameter);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);
searchQuery.setHighlight(highlight);
searchQuery.setLimit(10);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchResponse response = client.search(request);
for (SearchHit hit : response.getSearchHits()) {
    HighlightResultItem resultItem = hit.getHighlightResultItem();
    if (resultItem == null) {
        continue;
    }
    HighlightField field = resultItem.getHighlightFieldByName("description");
    if (field != null) {
        System.out.println(field.getFragments());
    }
}

Parâmetros

request.searchQuery.highlight é do tipo Highlight. Os valores em fieldHighlightParams são objetos HighlightParameter que configuram o comportamento dos fragmentos para campos individuais.

A tabela abaixo usa caminhos completos de parâmetros para descrever os dois níveis de configuração: Highlight e HighlightParameter.

Nome

Tipo

Descrição

fieldHighlightParams (obrigatório)

Map<String, HighlightParameter>

Nomes dos campos e configurações de fragmentos. A chave representa o nome do campo cujos resultados de resumo e destaque você deseja retornar. Seu valor corresponde ao objeto HighlightParameter desse campo. O campo precisa ter o resumo e destaque habilitados e deve ser usado em uma condição de consulta compatível.

highlightEncoder (opcional)

HighlightEncoder

Método de codificação do texto original nos fragmentos destacados. Valores válidos:

  • PLAIN (padrão): Não codifica o texto original.

  • HTML: Aplica escape HTML ao texto original. Use este valor caso exiba os resultados em uma página web. Os caracteres <, >, ", ' e / são convertidos para &lt;, &gt;, &quot;, &#x27; e &#x2F;, respectivamente.

fieldHighlightParams[].numberOfFragments (opcional)

Integer

Quantidade máxima de fragmentos destacados a serem retornados para um campo. Recomendamos definir este parâmetro como 1.

fieldHighlightParams[].fragmentSize (opcional)

Integer

Tamanho alvo de cada fragmento. O valor padrão é 100. O tamanho real do fragmento pode diferir deste valor.

fieldHighlightParams[].preTag (opcional)

String

Pré-tag para um termo correspondente. O valor padrão é <em>. Especifique uma tag personalizada, como <b>. Configure preTag e postTag simultaneamente. Os caracteres suportados incluem < > " ' /, a-z, A-Z e 0-9.

fieldHighlightParams[].postTag (opcional)

String

Pós-tag para um termo correspondente. O valor padrão é </em>. Especifique uma tag personalizada, como </b>. Configure preTag e postTag simultaneamente. Os caracteres suportados são os mesmos de preTag.

fieldHighlightParams[].highlightFragmentOrder (opcional)

HighlightFragmentOrder

Ordem de retorno quando há múltiplos fragmentos destacados. TEXT_SEQUENCE (padrão) ordena os fragmentos conforme suas posições no texto original. Já SCORE classifica os fragmentos com base nas pontuações de relevância dos termos correspondentes.

Resposta

Resposta da consulta

O método search retorna um objeto SearchResponse. Os campos a seguir referem-se ao resumo e destaque.

Nome

Tipo

Descrição

searchHits

List<SearchHit>

Resultados da consulta, obtidos pela chamada de getSearchHits(). Cada elemento contém dados da linha e resultados de resumo e destaque.

isAllSuccess

boolean

Indica se todas as partições do índice foram consultadas. Obtenha o valor chamando isAllSuccess(). Se o valor for false, apenas resultados parciais serão retornados.

Resultado da consulta

response.searchHits[] é do tipo SearchHit. Os campos listados abaixo dizem respeito ao resumo e destaque.

Nome

Tipo

Descrição

row

Row

Dados da linha. Para obter o valor, chame getRow().

highlightResultItem

HighlightResultItem

Resultados de resumo e destaque de todos os campos da linha. Para obter o valor, chame getHighlightResultItem(). O valor será null caso a linha não possua resultados de destaque.

Resultado do destaque

response.searchHits[].highlightResultItem é do tipo HighlightResultItem e contém o seguinte campo.

Nome

Tipo

Descrição

highlightFields

Map<String, HighlightField>

Resultados de destaque para os campos da linha. Para obter o mapa, chame getHighlightFields(). Alternativamente, chame getHighlightFieldByName(fieldName) para obter o resultado de um campo específico. O método retorna null se o campo não tiver resultado de destaque.

Fragmentos de campo

response.searchHits[].highlightResultItem.highlightFields[fieldName] é do tipo HighlightField e contém o campo descrito a seguir.

Nome

Tipo

Descrição

fragments

List<String>

Fragmentos destacados do campo. Para obter a lista, chame getFragments(). Os termos correspondentes dentro dos fragmentos aparecem envoltos pela pré-tag e pós-tag configuradas.