Todos los productos
Search
Centro de documentos

Tablestore:Ejecutar una consulta de coincidencia

Última actualización: Sep 22, 2026

Una consulta de coincidencia permite consultar datos en una tabla con base en coincidencias aproximadas. Tablestore segmenta los valores de las columnas de tipo TEXT y las palabras clave que se usan en las consultas, según el analizador que usted especifique. De esta forma, Tablestore ejecuta las consultas a partir de los tokens generados. Se recomienda llamar a la operación MatchPhraseQuery para consultar frases en columnas con segmentación difusa, ya que esto garantiza un alto rendimiento en dichas consultas.

Requisitos previos

Parámetros

Parámetro

Descripción

table_name

El nombre de la tabla de datos.

index_name

El nombre del índice de búsqueda.

offset

La posición desde donde inicia la consulta actual.

limit

El número máximo de filas que debe devolver la consulta actual.

Si solo necesita conocer cuántas filas cumplen las condiciones de consulta, sin recuperar sus datos específicos, establezca el parámetro limit en 0.

get_total_count

Indica si se devuelve el total de filas que cumplen las condiciones de consulta. El valor predeterminado es false, lo que significa que no se devuelve dicho total.

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

query_type

El tipo de consulta. Establezca este parámetro en QueryTypeConst::MATCH_QUERY.

field_name

El nombre de la columna que desea consultar.

La columna puede ser de tipo TEXT.

text

La palabra clave que se usa para comparar con el valor de la columna durante la consulta.

Si la columna consultada es de tipo TEXT, la palabra clave se divide en varios tokens según el analizador especificado al crear el índice de búsqueda. Si no definió ningún analizador, se aplica por defecto la segmentación por palabra única.

Por ejemplo, si la columna es de tipo TEXT y se usa segmentación por palabra única, al buscar la frase "this is" se obtienen resultados como "..., this is tablestore", "is this tablestore", "tablestore is cool", "this" e "is".

operator

El operador lógico. Por defecto se utiliza OR, lo que indica que una fila cumple las condiciones cuando su columna contiene como mínimo la cantidad requerida de tokens.

Si configura el operador en AND, la fila solo cumplirá las condiciones cuando contenga todos los tokens.

minimum_should_match

La cantidad mínima de tokens coincidentes que debe contener el valor de la columna.

Una fila se devuelve únicamente si el valor de la columna consultada incluye como mínimo dicha cantidad de tokens coincidentes.

Nota

El parámetro minimum_should_match debe usarse junto con el operador lógico OR.

columns_to_get

Define si se devuelven todas las columnas de las filas que cumplen las condiciones de consulta. Puede configurar los parámetros return_type y return_names.

  • Si establece return_type en ColumnReturnTypeConst::RETURN_SPECIFIED, use return_names para indicar qué columnas se deben devolver.

  • Si configura el parámetro return_type en ColumnReturnTypeConst::RETURN_ALL, se devuelven todas las columnas.

  • Al establecer return_type en ColumnReturnTypeConst::RETURN_ALL_FROM_INDEX, se devuelven todas las columnas del índice de búsqueda.

  • Si define el parámetro return_type como ColumnReturnTypeConst::RETURN_NONE, solo se devuelven las columnas de la clave principal.

Ejemplo

A continuación se muestra un ejemplo de código para consultar las filas cuya columna text coincide con "ots text php keyword" dentro de la tabla de datos.

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 2,
        'get_total_count' => true,
        'query' => array(
            'query_type' => QueryTypeConst::MATCH_QUERY,
            'query' => array(
                'field_name' => 'text',
                'text' => 'ots text php keyword',
//              'operator' => QueryOperatorConst::PBAND,
                'operator' => QueryOperatorConst::PBOR,// Use the minimum_should_match parameter together with the OR logical operator. 
                'minimum_should_match' => 3
            )
        ),
        'sort' => array(
            array(
                'field_sort' => array(
                    'field_name' => 'keyword',
                    'order' => SortOrderConst::SORT_ORDER_ASC
                )
            ),
        )
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('text')
    )
);
$response = $otsClient->search($request);

Preguntas frecuentes

Referencias

  • Cuando utilice un índice de búsqueda para consultar datos, puede emplear los siguientes métodos: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query y exists query. Cada método le permite consultar datos desde distintas perspectivas según sus necesidades de negocio.

    Si necesita ordenar o paginar las filas que cumplen las condiciones de consulta, utilice la función de ordenamiento y paginación. Para obtener más información, consulte Sorting and paging.

    Para agrupar el conjunto de resultados con base en una columna específica, utilice la función collapse (distinct). Así, los datos del tipo indicado aparecerán una sola vez en los resultados. Para obtener más información, consulte Collapse (distinct).

  • Si requiere analizar los datos de una tabla, por ejemplo, para obtener valores extremos, sumas o el total de filas, ejecute operaciones de agregación o sentencias SQL. Para obtener más información, consulte Aggregation y SQL query.

  • Cuando necesite obtener rápidamente todas las filas que cumplen las condiciones de consulta sin ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para usar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.