Todos los productos
Search
Centro de documentos

Tablestore:Summary and highlighting

Última actualización: Sep 03, 2026

Utilice el resumen y resaltado con el Tablestore SDK for Java para obtener fragmentos de campos Text que contengan términos coincidentes y marcar dichos términos con las etiquetas configuradas.

Requisitos previos

Instale Tablestore SDK for Java e inicialice un cliente.

Descripción de la función

El resumen y resaltado extrae fragmentos de texto alrededor de los términos que coinciden con una consulta y encierra dichos términos entre etiquetas de apertura y cierre. Puede utilizar estos fragmentos para mostrar el contexto de las coincidencias de la consulta. Esta función solo es compatible con campos Text.

Antes de usar el resumen y resaltado, establezca enableHighlighting en true para el campo cuando create a search index. En una consulta, utilice SearchQuery.highlight para especificar los campos cuyos fragmentos desea obtener, así como la configuración de dichos fragmentos. El campo debe utilizarse en una condición de consulta que admita resumen y resaltado; de lo contrario, no se devolverán fragmentos resaltados para ese campo.

Los siguientes tipos de consulta pueden devolver resultados de resumen y resaltado: TermQuery, TermsQuery, MatchQuery, MatchPhraseQuery, PrefixQuery, WildcardQuery, RangeQuery, BoolQuery, ConstScoreQuery y NestedQuery.

Para una BoolQuery o ConstScoreQuery, puede configurar el resumen y resaltado en los campos utilizados por las consultas secundarias de los siete tipos mencionados anteriormente. Para una NestedQuery, configure InnerHits.highlight para obtener resultados de resumen y resaltado de las filas secundarias coincidentes. Para más información, consulte Nested query.

Nota
  • Si utiliza MatchQuery o MatchPhraseQuery, un término coincidente podría quedar encerrado entre varios pares de etiquetas de apertura y cierre.

  • Si se utiliza la tokenización semántica máxima en un campo Text, MatchPhraseQuery no admite resumen y resaltado.

  • Un límite de fragmento podría dividir un término coincidente. En este caso, el término no se resalta.

El siguiente ejemplo utiliza una consulta de coincidencia para recuperar filas donde el campo description contiene el término tablestore. El ejemplo encierra los términos coincidentes en los fragmentos devueltos con <b> y </b>. El campo description es un campo Text que tiene habilitado el resumen y resaltado.

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 es del tipo Highlight. Los valores en fieldHighlightParams son objetos HighlightParameter que configuran el comportamiento de los fragmentos para campos individuales.

La siguiente tabla utiliza las rutas completas de los parámetros para describir los dos niveles de configuración: Highlight y HighlightParameter.

Nombre

Tipo

Descripción

fieldHighlightParams (obligatorio)

Map<String, HighlightParameter>

Nombres de campos y configuración de fragmentos. La clave es el nombre del campo del cual desea obtener resultados de resumen y resaltado. Su valor es el objeto HighlightParameter correspondiente a dicho campo. El campo debe tener habilitado el resumen y resaltado, y debe usarse en una condición de consulta compatible.

highlightEncoder (opcional)

HighlightEncoder

Método de codificación para el texto original en los fragmentos resaltados. Valores válidos:

  • PLAIN (predeterminado): No codifica el texto original.

  • HTML: Aplica escape HTML al texto original. Utilice este valor si va a mostrar los resultados en una página web. Los caracteres <, >, ", ' y / se escapan como &lt;, &gt;, &quot;, &#x27; y &#x2F;, respectivamente.

fieldHighlightParams[].numberOfFragments (opcional)

Integer

Número máximo de fragmentos resaltados que se devolverán para un campo. Se recomienda establecer este parámetro en 1.

fieldHighlightParams[].fragmentSize (opcional)

Integer

Longitud objetivo de cada fragmento. El valor predeterminado es 100. La longitud real del fragmento puede diferir de este valor.

fieldHighlightParams[].preTag (opcional)

String

Etiqueta de apertura para un término coincidente. El valor predeterminado es <em>. Puede especificar una etiqueta personalizada como <b>. Debe configurar preTag y postTag conjuntamente. Los caracteres admitidos son < > " ' /, a-z, A-Z y 0-9.

fieldHighlightParams[].postTag (opcional)

String

Etiqueta de cierre para un término coincidente. El valor predeterminado es </em>. Puede especificar una etiqueta personalizada como </b>. Debe configurar preTag y postTag conjuntamente. Los caracteres admitidos son los mismos que para preTag.

fieldHighlightParams[].highlightFragmentOrder (opcional)

HighlightFragmentOrder

Orden en que se devuelven múltiples fragmentos resaltados. TEXT_SEQUENCE (predeterminado) ordena los fragmentos según su posición en el texto original. SCORE ordena los fragmentos según las puntuaciones de relevancia de los términos coincidentes.

Respuesta

Respuesta de la consulta

El método search devuelve un objeto SearchResponse. Los siguientes campos son relevantes para el resumen y resaltado.

Nombre

Tipo

Descripción

searchHits

List<SearchHit>

Coincidencias de la consulta, que se obtienen al llamar a getSearchHits(). Cada elemento contiene datos de la fila y resultados de resumen y resaltado.

isAllSuccess

boolean

Indica si se consultaron todas las particiones del índice. Puede obtener el valor al llamar a isAllSuccess(). Si el valor es false, se devuelven resultados parciales.

Coincidencia de consulta

response.searchHits[] es del tipo SearchHit. Los siguientes campos son relevantes para el resumen y resaltado.

Nombre

Tipo

Descripción

row

Row

Datos de la fila. Puede obtener el valor al llamar a getRow().

highlightResultItem

HighlightResultItem

Resultados de resumen y resaltado de todos los campos en la fila. Puede obtener el valor al llamar a getHighlightResultItem(). El valor es null si la fila no tiene resultados de resaltado.

Resultado de resaltado

response.searchHits[].highlightResultItem es del tipo HighlightResultItem y contiene el siguiente campo.

Nombre

Tipo

Descripción

highlightFields

Map<String, HighlightField>

Resultados de resaltado para los campos de la fila. Puede obtener el mapa al llamar a getHighlightFields(). También puede llamar a getHighlightFieldByName(fieldName) para obtener el resultado de un campo específico. El método devuelve null si el campo no tiene resultado de resaltado.

Fragmentos de campo

response.searchHits[].highlightResultItem.highlightFields[fieldName] es del tipo HighlightField y contiene el siguiente campo.

Nombre

Tipo

Descripción

fragments

List<String>

Fragmentos resaltados del campo. Puede obtener la lista al llamar a getFragments(). Los términos coincidentes en los fragmentos están encerrados entre la etiqueta de apertura y la etiqueta de cierre configuradas.