Todos los productos
Search
Centro de documentos

Tablestore:Match phrase query

Última actualización: Sep 03, 2026

Una consulta de coincidencia de frases con el Tablestore SDK for Java busca en un campo Text según el orden y la posición de los tokens, y devuelve las filas que cumplen la condición de frase junto con sus puntuaciones de relevancia.

Requisitos previos

Instale Tablestore SDK for Java e inicialice el cliente.

Descripción de la función

Una consulta de coincidencia de frases busca tokens que aparecen de forma consecutiva, en el orden y las posiciones especificados, dentro de un campo Text. Para obtener información sobre el tipo de campo, consulte String types. El valor del campo y el texto de consulta se analizan mediante el analizador configurado al crear el índice de búsqueda. Si no se configura ningún analizador, se utiliza la tokenización de palabra única de forma predeterminada.

Esta consulta requiere que todos los tokens de búsqueda aparezcan en el mismo orden y en posiciones adyacentes. Por ejemplo, el texto de consulta this is coincide con this is tablestore, pero no con this table is ni con is this a table. Una match query solo verifica si los tokens coinciden, sin exigir que sean adyacentes o que respeten el mismo orden del texto de consulta.

Si un campo Text utiliza el analizador difuso, la consulta de coincidencia de frases permite realizar coincidencias difusas similares a las de una wildcard query, pero con menor latencia de consulta.

En el siguiente ejemplo se consultan filas cuyo campo description contiene de forma consecutiva los tokens tablestore y durable en ese orden. La consulta devuelve hasta 10 filas, el número total de filas coincidentes y las puntuaciones de relevancia.

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

Solicitud de búsqueda

request es un objeto SearchRequest que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

tableName (obligatorio)

String

Nombre de la tabla.

indexName (obligatorio)

String

Nombre del índice de búsqueda.

searchQuery (obligatorio)

SearchQuery

Condición de consulta y configuración general de la consulta.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

Configuración de las columnas devueltas. Si omite este parámetro, solo se devuelven las columnas de clave principal.

timeoutInMillisecond (opcional)

int

Tiempo de espera de la consulta a nivel de solicitud, en milisegundos. El valor predeterminado es -1, lo que indica que no se establece un tiempo de espera específico para la consulta.

routingValues (opcional)

List<PrimaryKey>

Valores de clave principal para campos de enrutamiento personalizado. Omita este parámetro si el índice no utiliza enrutamiento personalizado.

Configuración de la consulta

request.searchQuery es un objeto SearchQuery que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

query (obligatorio)

Query

Condición de consulta. Establezca este parámetro en MatchPhraseQuery para realizar una consulta de coincidencia de frases.

offset (opcional)

Integer

Posición inicial de la consulta.

limit (opcional)

Integer

Número máximo de filas por devolver. Establezca este parámetro en 0 para no devolver ninguna fila.

highlight (opcional)

Highlight

Configuración de resumen y resaltado para campos Text. Para más detalles sobre la configuración y los límites, consulte Summary and highlighting.

collapse (opcional)

Collapse

Configuración de colapso de campos, que deduplica los resultados según un campo especificado. Para más detalles sobre la configuración, consulte Collapse query results.

sort (opcional)

Sort

Orden de clasificación de los resultados. Para más detalles sobre la configuración, consulte Sort and paginate results.

trackTotalCount (opcional)

int

Número máximo esperado de filas coincidentes por contar. El valor predeterminado es TRACK_TOTAL_COUNT_DISABLED, que deshabilita el conteo. Establezca este parámetro en TRACK_TOTAL_COUNT para contar todas las filas coincidentes. Un valor menor mejora el rendimiento de la consulta.

filter (opcional)

SearchFilter

Filtro que se aplica a los resultados de query.

aggregationList (opcional)

List<Aggregation>

Configuración de agregaciones. Para más detalles sobre la configuración, consulte Aggregation.

groupByList (opcional)

List<GroupBy>

Configuración de agrupación. Para más detalles sobre la configuración, consulte Aggregation.

token (opcional)

byte[]

Token de paginación. Establezca este parámetro con el valor nextToken de la respuesta anterior para continuar leyendo filas. Al establecer token, el SDK borra sort porque el token ya contiene las condiciones de ordenamiento.

Condición de coincidencia de frases

request.searchQuery.query es un objeto MatchPhraseQuery que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

fieldName (obligatorio)

String

Nombre del campo de índice Text que se va a consultar.

text (obligatorio)

String

Texto de consulta. El texto se analiza mediante el analizador del campo y se compara según el orden y la posición de los tokens.

weight (opcional)

float

Peso de la consulta. El valor predeterminado es 1.0 y debe ser un número de punto flotante positivo. Un valor mayor incrementa la contribución de esta consulta a la puntuación de relevancia sin alterar el alcance de la coincidencia.

Columnas devueltas

request.columnsToGet es un objeto SearchRequest.ColumnsToGet que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

columns (opcional)

List<String>

Columnas de atributos por devolver. Establezca este parámetro solo si tanto returnAll como returnAllFromIndex son false. Si omite este parámetro, solo se devuelven las columnas de clave principal.

returnAll (opcional)

boolean

Indica si se deben devolver todas las columnas de atributos de la tabla. El valor predeterminado es false.

returnAllFromIndex (opcional)

boolean

Indica si se deben devolver todas las columnas de atributos indexadas. El valor predeterminado es false. Este parámetro y returnAll no pueden ser ambos true.

Valores devueltos

Respuesta de la consulta

El método search devuelve un objeto SearchResponse. La siguiente tabla describe los campos principales.

Nombre

Tipo

Descripción

totalCount

long

Número de filas coincidentes. Llame a getTotalCount() para obtener el valor. El valor devuelto depende de la configuración de trackTotalCount.

rows

List<Row>

Filas devueltas en la respuesta actual. Llame a getRows() para obtener el valor. El número de filas no supera el valor de limit.

searchHits

List<SearchHit>

Coincidencias de la consulta. Llame a getSearchHits() para obtener el valor. Este campo contiene las puntuaciones de relevancia, así como los resultados de resumen y resaltado.

nextToken

byte[]

Token de la página siguiente. Llame a getNextToken() para obtener el valor. Si el valor no es null, establézcalo como token en la siguiente solicitud para continuar leyendo filas.

isAllSuccess

boolean

Indica si todas las particiones del índice se consultaron correctamente. Llame a isAllSuccess() para obtener el valor. Si el valor es false, la respuesta contiene resultados parciales y totalCount podría ser menor que el número real de filas coincidentes.

Coincidencia de consulta

response.searchHits[] es un objeto SearchHit que contiene los siguientes campos principales.

Nombre

Tipo

Descripción

row

Row

Fila coincidente. Llame a getRow() para obtener el valor.

score

Double

Puntuación de relevancia. Llame a getScore() para obtener el valor. Cuando se utiliza ScoreSort, este campo contiene la puntuación real. Los tokens coincidentes y weight afectan la puntuación.

highlightResultItem

HighlightResultItem

Resultado de resumen y resaltado. Llame a getHighlightResultItem() para obtener el valor.