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
Se inicializó una instancia de OTSClient. Para obtener más información, consulte Initialize an OTSClient instance.
Se creó una tabla de datos y se escribieron datos en ella. Para obtener más información, consulte Create a data table y Write data.
Se creó un índice de búsqueda para la tabla de datos. Para obtener más información, consulte Create a search index.
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 |
|
|
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.
|
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.