Em consultas com curinga, use os caracteres asterisco () e ponto de interrogação (?) para buscar dados. O asterisco () corresponde a uma string de qualquer comprimento no início, meio ou fim do termo de pesquisa. O ponto de interrogação (?) substitui um único caractere em uma posição específica. A string de correspondência pode começar com asterisco () ou ponto de interrogação (?). Por exemplo, ao pesquisar pela string "tablee", o termo "tablestore" será encontrado.
Se o padrão da consulta for *word* (equivalente a WHERE field_a LIKE '%word%' em SQL), use o recurso de consultas com curinga baseadas em tokens para obter melhor desempenho. Essa abordagem mantém a performance mesmo com o aumento do volume de dados.
Para usar o operador NOT LIKE, combine WildcardQuery com mustNotQueries de BoolQuery.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Tabela de dados criada e preenchida. Para mais informações, consulte Criar tabelas de dados e Gravar dados.
Índice de pesquisa criado para a tabela de dados. Para mais informações, consulte Criar índices de pesquisa.
Parâmetros
|
Parâmetro |
Descrição |
|
Query |
Tipo da consulta. Defina este parâmetro como WildcardQuery. |
|
FieldName |
Nome da coluna a ser consultada. |
|
Value |
String com caracteres curinga. O tamanho máximo permitido é de 32 caracteres. |
|
TableName |
Nome da tabela de dados. |
|
IndexName |
Nome do índice de pesquisa. |
|
GetTotalCount |
Indica se o número total de linhas que atendem às condições da consulta deve ser retornado. Valor padrão: false. Definir este parâmetro como true reduz o desempenho da consulta. |
|
ColumnsToGet |
Determina o retorno das colunas nas linhas correspondentes à consulta. Configure os parâmetros ReturnAll, Columns e ReturnAllFromIndex conforme necessário. O valor padrão de ReturnAll é false, o que indica que nem todas as colunas serão retornadas. Use um dos métodos abaixo para definir as colunas desejadas; caso contrário, apenas as colunas de chave primária serão incluídas no resultado.
Ao definir ReturnAll como true, todas as colunas são retornadas. |
Exemplo
O código de exemplo a seguir demonstra como consultar linhas em uma tabela onde o valor da coluna Keyword_type_col corresponde a "Search*".
/// <summary>
/// Query the rows in which the value of the Keyword_type_col column matches "Search*" in a table.
/// </summary>
/// <param name="otsClient"></param>
public static void WildcardQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// Set the query type to WildcardQuery and specify a string that contains one or more wildcard characters to perform a wildcard query.
searchQuery.Query = new WildcardQuery(Keyword_type_col, "*Search*");
// Return the total number of rows that meet the query conditions.
searchQuery.GetTotalCount = true;
var request = new SearchRequest(TableName, IndexName, searchQuery);
// You can specify the ColumnsToGet parameter to return the columns that you specify, all columns in the rows that meet the query conditions, or all columns in the search index. If you do not specify this parameter, only the primary key columns are returned.
request.ColumnsToGet = new ColumnsToGet()
{
// Return all columns in the search index.
ReturnAllFromIndex = true
// Return the columns that you specify.
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// Return all columns in the rows that meet the query conditions.
//ReturnAll = true
};
var response = otsClient.Search(request);
Console.WriteLine("Total Count:" + response.TotalCount); // Display the total number of rows that meet the query conditions instead of the number of returned rows.
}
Perguntas frequentes
Referências
-
Índices de pesquisa oferecem diversos métodos de consulta: consulta por termo, consulta por termos, consulta match all, consulta match, consulta match phrase, consulta por prefixo, consulta por intervalo, consulta com curinga, consulta booleana, consulta geográfica, consulta aninhada e consulta exists. Escolha o método adequado para extrair dados sob múltiplas dimensões conforme suas necessidades de negócio.
Recursos de ordenação e paginação permitem organizar ou segmentar as linhas resultantes da consulta. Para mais detalhes, veja Ordenação e paginação.
A funcionalidade collapse (distinct) agrupa resultados com base em uma coluna específica, garantindo que cada tipo de dado apareça apenas uma vez na resposta. Consulte Collapse (distinct) para saber mais.
Para analisar dados em uma tabela, use o recurso de agregação da operação Search ou execute instruções SQL. É possível obter valores mínimos, máximos, somas e contagens totais de linhas. Veja Agregação e Consulta SQL.
Caso precise recuperar todas as linhas correspondentes sem ordenação, chame as operações ParallelScan e ComputeSplits para usar a varredura paralela. Mais informações em Varredura paralela.