Use a consulta de prefixo para buscar dados correspondentes a um prefixo especificado. Se a coluna usada na condição de prefixo for do tipo TEXT, ela será tokenizada. Uma linha atenderá aos critérios da consulta quando pelo menos um token contiver o prefixo definido.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Tabela de dados criada e com dados gravados. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Índice de busca criado para a tabela de dados. Para mais informações, consulte Criar um índice de busca.
Parâmetros
|
Parâmetro |
Descrição |
|
table_name |
Nome da tabela de dados. |
|
index_name |
Nome do índice de busca. |
|
offset |
Posição inicial da consulta atual. |
|
limit |
Número máximo de linhas retornadas pela consulta atual. Defina este parâmetro como 0 para obter apenas a contagem de linhas correspondentes, sem recuperar os dados específicos. |
|
get_total_count |
Indica se o total de linhas correspondentes deve ser retornado. Valor padrão: false. Quando definido como false, a contagem total não é incluída na resposta. Habilitar esta opção (true) pode impactar o desempenho da consulta. |
|
query_type |
Tipo de consulta. Para executar uma consulta de prefixo, defina este parâmetro como |
|
field_name |
Nome da coluna a ser consultada. |
|
prefix |
Prefixo desejado. Se a coluna alvo for do tipo TEXT, o sistema a tokeniza automaticamente. A linha será considerada correspondente se qualquer token gerado contiver o prefixo informado. |
|
sort |
Critério de ordenação das linhas na resposta. Para mais informações, consulte Ordenação e paginação. |
|
columns_to_get |
Define quais colunas retornar para cada linha correspondente. Configure return_type e return_names conforme necessário.
|
Exemplos
O código abaixo demonstra como buscar todas as linhas cuja coluna keyword contenha o prefixo "key" em uma tabela de dados.
$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::PREFIX_QUERY,
'query' => array(
'field_name' => 'keyword',
'prefix' => 'key'
)
),
'sort' => array(
array(
'field_sort' => array(
'field_name' => 'keyword',
'order' => SortOrderConst::SORT_ORDER_ASC
)
),
)
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_ALL,
'return_names' => array('keyword')
)
);
$response = $otsClient->search($request);
FAQ
Referências
-
Ao consultar dados via índice de busca, você tem à disposição diversos métodos: consulta de termo, consulta de termos, match all query, match query, match phrase query, consulta de prefixo, consulta de intervalo, wildcard query, Boolean query, geo query, nested query e exists query. Combine essas abordagens para extrair dados sob múltiplas perspectivas, conforme a necessidade do seu negócio.
Para organizar ou paginar os resultados, utilize o recurso de ordenação e paginação. Consulte Ordenação e paginação para detalhes.
Caso precise eliminar duplicatas com base em uma coluna específica, aplique o recurso de collapse (distinct). Assim, cada valor distinto desse campo aparece apenas uma vez nos resultados. Veja mais em Collapse (distinct).
Para análises estatísticas na tabela, como somatórios, valores extremos ou contagem total de linhas, utilize operações de agregação ou comandos SQL. Saiba mais em Agregação e Consulta SQL.
Para recuperar rapidamente todas as linhas correspondentes sem ordenação, utilize o scan paralelo por meio das operações ParallelScan e ComputeSplits. Para instruções completas, acesse Scan paralelo.