Use o recurso de collapse para remover duplicatas dos resultados de busca com base em uma coluna específica. Quando os resultados da consulta contêm grandes volumes de dados de um tipo específico, o collapse exibe esses dados apenas uma vez nos resultados retornados, garantindo a diversidade dos tipos de resultado.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Initialize an OTSClient instance.
Tabela de dados criada e com dados gravados. Para mais informações, consulte Create a data table 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 |
|
table_name |
Nome da tabela de dados. |
|
index_name |
Nome do índice de busca. |
|
query |
Tipo de consulta. Defina como qualquer tipo de consulta compatível. |
|
collapse |
Agrupa o conjunto de resultados pela coluna especificada. Apenas colunas INTEGER, FLOATING-POINT e KEYWORD são compatíveis.
|
|
offset |
Posição inicial da consulta. |
|
limit |
Número máximo de linhas a retornar. Defina |
Exemplos
O código de exemplo a seguir demonstra como usar um índice de busca para obter até 10 registros únicos do tipo keyword na tabela php_sdk_test e retornar os dados das colunas col1 e 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);
FAQ
Referências
-
Ao consultar dados com um índice de busca, use os seguintes 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 e exists query. Combine diferentes métodos para buscar dados em múltiplas dimensões conforme as necessidades do seu negócio.
Para ordenar ou paginar as linhas que atendem às condições da consulta, use 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, use o recurso de collapse (distinct). Assim, os dados do tipo especificado aparecem 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 número 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 que atendem às condições da consulta sem ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Parallel scan.