Utilice la función de colapso para deduplicar los resultados de búsqueda por una columna específica. Cuando los resultados de la consulta contienen grandes cantidades de datos de un tipo específico, el colapso muestra esos datos solo una vez en los resultados devueltos para garantizar la diversidad de los tipos de resultados.
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.
Límites de uso
Antes de utilizar la función de colapso, tenga en cuenta a continuación las siguientes restricciones:
Tipos de columnas compatibles: la función de colapso se aplica únicamente a columnas de tipo entero, número de punto flotante y Keyword. Las columnas de tipo arreglo no son compatibles.
Paginación: esta función admite la paginación solo mediante offset y limit. La paginación basada en token no es compatible.
Agregación: cuando utiliza la agregación estadística junto con la función de colapso, la agregación se aplica únicamente al conjunto de resultados antes de la operación de colapso.
Límite de conteo de grupos: después de la operación de colapso, el número total de grupos devueltos depende del valor máximo de offset más limit. Se pueden devolver hasta 100,000 grupos.
Conteo total: el número total de filas en la respuesta corresponde a las filas coincidentes antes de la operación de colapso. No es posible obtener el número total de grupos después de dicha operación.
Parámetros
|
Parámetro |
Descripción |
|
table_name |
El nombre de la tabla de datos. |
|
index_name |
El nombre del índice de búsqueda. |
|
query |
El tipo de consulta. Establezca este parámetro en cualquier tipo de consulta compatible. |
|
collapse |
Colapsa el conjunto de resultados según la columna especificada. Solo se admiten columnas de tipo INTEGER, FLOATING-POINT y KEYWORD.
|
|
offset |
La posición inicial de la consulta. |
|
limit |
El número máximo de filas que se devuelven. Establezca |
Ejemplos
El siguiente código de ejemplo muestra cómo utilizar un índice de búsqueda para obtener hasta 10 registros únicos de tipo keyword en la tabla php_sdk_test y devolver los datos de las columnas col1 y col2.
$request = array(
'table_name' => 'php_sdk_test',
'index_name' => 'php_sdk_test_search_index',
'search_query' => array(
'offset' => 0,
'limit' => 10,
'get_total_count' => true,
'collapse' => array(
'field_name' => 'keyword'
),
'query' => array(
'query_type' => QueryTypeConst::MATCH_ALL_QUERY
),
// 'sort' => array(// Specify a specific sorting method if required.
// array(
// 'field_sort' => array(
// 'field_name' => 'keyword',
// 'order' => SortOrderConst::SORT_ORDER_ASC
// )
// ),
// ),
'token' => null,
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
'return_names' => array('col1', 'col2')
)
);
$response = $otsClient->search($request);
Preguntas frecuentes
Referencias
-
Cuando consulta datos mediante un índice de búsqueda, puede utilizar los siguientes métodos de consulta: 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. Según sus requisitos de negocio, utilice distintos métodos para consultar datos desde múltiples dimensiones.
Si necesita ordenar o paginar las filas que cumplen con las condiciones de la consulta, utilice la función de ordenamiento y paginación. Para obtener más información, consulte Sorting and paging.
Para colapsar el conjunto de resultados según una columna específica, utilice la función de colapso (distinct). De este modo, los datos del tipo especificado aparecen solo una vez en los resultados de la consulta. Para obtener más información, consulte Collapse (distinct).
Si desea analizar los datos de una tabla, como obtener los valores extremos, la suma y el número total de filas, ejecute operaciones de agregación o sentencias SQL. Para obtener más información, consulte Aggregation y SQL query.
Para obtener rápidamente todas las filas que cumplen con las condiciones de la consulta sin necesidad de ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para utilizar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.