La función collapse elimina los duplicados de un conjunto de resultados de consulta según una columna específica. De esta manera, cada valor único aparece solo una vez en los resultados devueltos. Utilice esta función para mantener la diversidad de los resultados cuando una sola categoría domina el conjunto.
Requisitos previos
Una instancia de OTSClient inicializada. Para más información, consulte Initialize an OTSClient instance.
Una tabla de datos creada y con información escrita en ella. Para más información, consulte Create data tables y Write data.
Un índice de búsqueda creado para la tabla de datos. Para más información, consulte Create a search index.
Límites de uso
Antes de usar la función collapse, tenga en cuenta a continuación las siguientes restricciones:
Tipos de columna compatibles: esta función solo aplica a columnas de tipo entero, número de punto flotante y Keyword. Las columnas de tipo arreglo no son compatibles.
Paginación: la paginación solo se admite mediante offset y limit. No es compatible con la paginación basada en token.
Agregación: si utiliza la agregación estadística junto con la función collapse, la agregación solo se aplica al conjunto de resultados previo a 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 como máximo.
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 |
query | El tipo de consulta. Este parámetro se puede establecer en cualquier tipo de consulta. |
collapse | Colapsa el conjunto de resultados según el campo que especifica el parámetro fieldName. fieldName: el nombre del campo con base en el cual se colapsa el conjunto de resultados. Solo se admiten campos cuyos valores sean de tipo INTEGER, FLOATING-POINT o KEYWORD. Los campos con valores de tipo ARRAY no son compatibles. |
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 consultar la cantidad de filas que cumplen las condiciones, sin obtener sus datos específicos, establezca el parámetro limit en 0. |
getTotalCount | Indica si se devuelve el número total de filas que cumplen las condiciones de la 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. |
tableName | El nombre de la tabla de datos. |
indexName | El nombre del índice de búsqueda. |
columnsToGet | Indica si se devuelven todas las columnas de cada fila que cumple las condiciones de la consulta.
|
Ejemplos
El siguiente código de ejemplo muestra cómo utilizar una consulta match all para obtener el número total de filas de una tabla y colapsar el conjunto de resultados según el valor de la columna col_keyword:
let searchQuery = {
offset: 0,
limit: 100,
query: {
queryType: TableStore.QueryType.MATCH_ALL_QUERY,
},
collapse: {
fieldName: "col_keyword",
},
getTotalCount: false,
};
let params = {
tableName: tableName,
indexName: indexName,
searchQuery: searchQuery,
columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return the specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns.
returnType: TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX
},
timeoutMs: 30000,
}
client.search(params, function (err, data) {
if (err) {
console.log('search error:', err.toString());
} else {
console.log('search success:', data);
}
});
Preguntas frecuentes
Referencias
-
Los índices de búsqueda admiten a continuación los siguientes tipos 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, vector query y exists query. Seleccione el tipo de consulta adecuado según sus necesidades de negocio.
Si necesita ordenar o paginar las filas que cumplen las condiciones de la consulta, utilice la función de ordenamiento y paginación. Para más información, consulte Sorting and paging.
Para colapsar el conjunto de resultados según una columna específica, utilice la función collapse (distinct). Así, los datos del tipo indicado aparecerán solo una vez en los resultados de la consulta. Para más información, consulte Collapse (distinct).
Si requiere analizar los datos de una tabla, por ejemplo, para obtener los valores extremos, la suma o el número total de filas, ejecute operaciones de agregación o instrucciones SQL. Para más información, consulte Aggregation y SQL query.
Cuando necesite obtener rápidamente todas las filas que cumplen las condiciones de la consulta, sin ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para aprovechar la función de escaneo paralelo. Para más información, consulte Parallel scan.