Todos los productos
Search
Centro de documentos

Tablestore:Consulta de coincidencia de frase

Última actualización: Sep 29, 2026

Una consulta de coincidencia de frase es similar a una consulta de coincidencia, pero evalúa las posiciones de los tokens. Una fila cumple con las condiciones de la consulta únicamente si el orden y las posiciones de los tokens en la fila coinciden con el orden y las posiciones de los tokens que contiene la clave de búsqueda. Si el método de tokenización del campo que desea consultar es la tokenización difusa, la consulta de coincidencia de frase se ejecuta con menor latencia que una consulta con comodines.

Escenarios

Utilice la consulta de coincidencia de frase para buscar datos que contengan una frase específica cuyas palabras estén organizadas en un orden determinado. Puede combinar esta consulta con la tokenización para ejecutar búsquedas de texto completo en escenarios específicos, como análisis de big data, búsqueda de contenido y recomendaciones personalizadas. Por ejemplo, puede consultar oraciones que contengan una frase particular dentro de una búsqueda de contenido o localizar mensajes organizados en una secuencia específica en los registros de chat.

Funciones

La consulta de coincidencia de frase utiliza coincidencias aproximadas para consultar datos y evalúa las posiciones de los tokens. Por ejemplo, suponga que el valor de una columna de tipo TEXT en una fila es "Hangzhou West Lake Scenic Area" y la clave de búsqueda que usted especifica es "Hangzhou Scenic Area". Tablestore devuelve la fila cuando usa una consulta de coincidencia. Sin embargo, al usar una consulta de coincidencia de frase, Tablestore no devuelve la fila. La distancia entre "Hangzhou" y "Scenic Area" en la clave de búsqueda es 0, pero en la columna de esta fila la distancia es 2, ya que existen las palabras "West" y "Lake" entre ambos términos.

Cuando utilice este tipo de consulta, debe especificar el nombre del campo que desea consultar y la clave de búsqueda. Una fila cumple con las condiciones de la consulta únicamente si el orden y las posiciones de los tokens en la fila coinciden con el orden y las posiciones de los tokens contenidos en la clave de búsqueda.

Durante la ejecución de una consulta de coincidencia de frase, puede especificar el peso que desea asignar al campo consultado para calcular la puntuación de relevancia de la clave de búsqueda basada en BM25. También puede definir las columnas que desea devolver, indicar si se debe devolver el número total de filas que cumplen con las condiciones de la consulta y establecer el método utilizado para ordenar las filas devueltas.

Operación de API

Para ejecutar una consulta de coincidencia de frase, llame a la operación Search o ParallelScan y establezca el tipo de consulta en MatchPhraseQuery.

Parámetros

Parámetro

Descripción

fieldName

El nombre del campo que desea hacer coincidir.

Puede ejecutar consultas de coincidencia de frase en campos de tipo TEXT.

text

La clave de búsqueda utilizada para hacer coincidir el valor del campo cuando ejecuta una consulta de coincidencia de frase.

Si el campo que desea hacer coincidir es de tipo TEXT, la clave de búsqueda se divide en varios tokens según el tipo de analizador que especificó al crear el índice de búsqueda. Si no especificó el tipo de analizador durante la creación del índice de búsqueda, se aplica la tokenización de palabra única. Para obtener más información, consulte Tokenization.

Por ejemplo, si ejecuta una consulta de coincidencia de frase con la expresión "this is", se devuelven resultados como "..., this is tablestore" y "this is a table". No se devuelven expresiones como "this table is ..." ni "is this a table".

query

El tipo de consulta. Establezca el parámetro query en matchPhraseQuery.

offset

La posición desde la cual inicia la consulta actual.

limit

El número máximo de filas que desea que devuelva la consulta actual.

Si solo desea consultar el número de filas que cumplen con las condiciones sin obtener datos específicos, establezca el parámetro limit en 0.

getTotalCount

Especifica si se debe devolver el número total de filas que cumplen con las condiciones de la consulta. El valor predeterminado de este parámetro es false, lo que indica que no se devuelve dicho total.

Si establece este parámetro en true, el rendimiento de la consulta disminuye.

weight

El peso que desea asignar al campo consultado para calcular la puntuación de relevancia de la clave de búsqueda basada en BM25. Este parámetro se utiliza en escenarios de búsqueda de texto completo. Si asigna un peso mayor al campo consultado, la puntuación de relevancia BM25 de dicho campo será más alta. El valor de este parámetro es un número de punto flotante positivo.

Este parámetro no afecta el número de filas devueltas, pero sí influye en las puntuaciones de relevancia BM25 de los resultados de la consulta.

tableName

El nombre de la tabla de datos.

indexName

El nombre del índice de búsqueda.

columnsToGet

Especifica si se deben devolver todas las columnas de cada fila que cumpla con las condiciones de la consulta. Puede configurar los campos returnAll y columns para el parámetro columnsToGet.

El valor predeterminado del campo returnAll es false, lo que indica que no se devuelven todas las columnas. En este caso, utilice el campo columns para especificar las columnas que desea devolver. Si no especifica dichas columnas, solo se devuelven las columnas de clave primaria.

Si establece el campo returnAll en true, se devuelven todas las columnas.

Notas

Search Index proporciona únicamente una puntuación de relevancia BM25 básica y no admite modelos de relevancia personalizados.

Métodos

Puede utilizar la consola de Tablestore, Tablestore CLI o los SDK de Tablestore para ejecutar una consulta de coincidencia de frase.

Antes de ejecutar la consulta, asegúrese de cumplir con los siguientes requisitos previos:

Uso de la consola de Tablestore

Puede utilizar la consola de Tablestore para ejecutar una consulta de coincidencia de frase.

  1. Vaya a la pestaña Index Management.

    1. Inicie sesión en la consola de Table Store.

    2. En la barra de navegación superior, seleccione un resource group y una región.

    3. En la página Overview, haga clic en el nombre de la instancia o en Instance Management dentro de la columna Actions.

    4. En la pestaña Instance Details y dentro de la pestaña Data Table List, haga clic en el nombre de la tabla de datos o en Index Management en la columna Actions.

  2. En la pestaña Index Management, busque el Search Index de destino y haga clic en Search dentro de la columna Actions.

  3. En el cuadro de diálogo Search, especifique las condiciones de la consulta.

    1. De forma predeterminada, se devuelven todas las columnas. Para devolver columnas específicas, desactive Retrieve All Columns e introduzca los nombres de las columnas separados por comas.

      Nota

      De forma predeterminada, Table Store devuelve las columnas de clave primaria de la tabla de datos.

    2. Seleccione un operador lógico: And, Or o Not.

      Si selecciona And, la consulta devuelve los datos que cumplen con todas las condiciones especificadas. Si selecciona Or, la consulta devuelve los datos que cumplen con como mínimo una de las condiciones especificadas. Si selecciona Not, la consulta devuelve los datos que no cumplen con las condiciones especificadas.

    3. Seleccione un campo indexado de tipo Text y haga clic en Add.

    4. Establezca el tipo de consulta del campo indexado en Match Phrase Query (MatchPhraseQuery) e introduzca el valor que desea buscar.

    5. De forma predeterminada, la ordenación está deshabilitada. Para ordenar los resultados por un campo específico, active Enable Sorting, agregue el campo de ordenación y configure el criterio de orden.

    6. De forma predeterminada, la agregación está deshabilitada. Para aplicar una agregación estadística a un campo específico, active Enable Aggregation, agregue el campo correspondiente y configure los parámetros de agregación.

  4. Haga clic en OK.

    Los resultados de la consulta se muestran en la pestaña Index Management.

Uso de Tablestore CLI

Puede utilizar Tablestore CLI para ejecutar el comando search y consultar datos mediante índices de búsqueda. Para obtener más información, consulte Search index.

  1. Ejecute el comando search para consultar datos con el índice de búsqueda search_index y devolver todas las columnas indexadas de cada fila que cumpla con las condiciones de la consulta.

    search -n search_index --return_all_indexed
  2. Introduzca las condiciones de la consulta según las indicaciones:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "MatchPhraseQuery",
            "Query": {
                "FieldName": "col_text",
                "Text": "this is"
            }
        }
    }

Uso de los SDK de Tablestore

Puede ejecutar una consulta de coincidencia de frase con los siguientes SDK de Tablestore: Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET y Tablestore SDK for PHP. En este ejemplo se utiliza el SDK de Tablestore para Java.

El siguiente ejemplo consulta las filas cuyo campo description contiene de manera consecutiva los tokens tablestore y durable en ese orden. La consulta devuelve un máximo de 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());
}

Facturación

Consultar datos mediante un Search Index consume capacidad de procesamiento de lectura. Para obtener más información, consulte Search Index metering and billing.

Preguntas frecuentes

Referencias