O recurso de collapse remove duplicatas de um conjunto de resultados de consulta com base em uma coluna especificada, garantindo que cada valor único apareça apenas uma vez nos resultados retornados. Use o collapse para manter a diversidade dos resultados quando uma única categoria predomina no conjunto de dados.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Initialize an OTSClient instance.
Tabela de dados criada e preenchida. Para mais informações, consulte Create data tables e Write data.
Índice de busca criado para a tabela de dados. Para mais informações, consulte Create a search index.
Limites de uso
Antes de usar o recurso de collapse, observe as seguintes restrições:
Tipos de coluna compatíveis — O recurso de collapse aplica-se apenas a colunas dos tipos integer, floating-point number e Keyword. Colunas do tipo array não são compatíveis.
Paginação — A paginação com o recurso de collapse funciona apenas por meio de offset e limit. Não há suporte à paginação baseada em token.
Agregação — Ao usar agregação estatística junto com o recurso de collapse, a agregação aplica-se somente ao conjunto de resultados antes da operação de collapse.
Limite de contagem de grupos — Após a operação de collapse, o número total de grupos retornados depende do valor máximo de offset somado a limit. O sistema retorna no máximo 100.000 grupos.
Contagem total — O número total de linhas na resposta corresponde à quantidade de linhas correspondentes antes da operação de collapse. Não é possível obter o número total de grupos após essa operação.
Parâmetros
Parâmetro | Descrição |
query | Tipo de consulta. Defina este parâmetro como qualquer tipo de consulta válido. |
collapse | Agrupa o conjunto de resultados com base no campo especificado pelo parâmetro fieldName. fieldName: nome do campo usado para agrupar o conjunto de resultados. Apenas campos com valores dos tipos INTEGER, FLOATING-POINT ou KEYWORD são compatíveis. Campos com valores do tipo ARRAY não são compatíveis. |
offset | Posição inicial da consulta atual. |
limit | Número máximo de linhas a serem retornadas pela consulta atual. Para consultar apenas a quantidade de linhas que atendem aos critérios sem recuperar os dados específicos dessas linhas, defina o parâmetro limit como 0. |
getTotalCount | Indica se o número total de linhas correspondentes aos critérios de consulta deve ser retornado. O valor padrão é false, o que significa que a contagem total não será retornada. Definir este parâmetro como true pode comprometer o desempenho da consulta. |
tableName | Nome da tabela de dados. |
indexName | Nome do índice de busca. |
columnsToGet | Define se todas as colunas de cada linha correspondente devem ser retornadas.
|
Exemplos
O código de exemplo abaixo demonstra como usar uma consulta match all para obter o número total de linhas de uma tabela e aplicar o collapse no conjunto de resultados com base nos valores da coluna 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);
}
});
FAQ
Referências
-
Os índices de busca suportam os seguintes 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 e exists query. Selecione o tipo de consulta adequado às necessidades do seu negócio.
Para ordenar ou paginar as linhas correspondentes aos critérios de consulta, utilize o recurso de ordenação e paginação. Para mais informações, consulte Sorting and paging.
Caso precise agrupar o conjunto de resultados com base em uma coluna específica, utilize o recurso de collapse (distinct). Dessa forma, os dados do tipo especificado aparecerão apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (distinct).
Para analisar dados em uma tabela, como obter valores extremos, soma e contagem total de linhas, execute operações de agregação ou instruções SQL. Para mais informações, consulte Aggregation e SQL query.
Se precisar obter rapidamente todas as linhas correspondentes sem ordená-las, chame as operações ParallelScan e ComputeSplits para utilizar o recurso de varredura paralela. Para mais informações, consulte Parallel scan.