Ao executar uma consulta com curinga, use os caracteres curinga 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 Initialize an OTSClient instance.
Tabela de dados criada e populada. Para mais informações, consulte Create data tables e Write data.
Índice de pesquisa criado para a tabela de dados. Para mais informações, consulte Create search indexes.
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 comprimento 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 aos critérios da consulta deve ser retornado. Valor padrão: false. Definir este parâmetro como true reduz o desempenho da consulta. |
|
ColumnsToGet |
Determina se todas as colunas das linhas correspondentes à consulta serão retornadas. Configure os parâmetros ReturnAll, Columns e ReturnAllFromIndex. O valor padrão de ReturnAll é false, indicando que nem todas as colunas são retornadas. Use um dos métodos abaixo para definir quais colunas incluir na resposta. Se nenhuma dessas opções for especificada, apenas as colunas de chave primária serão retornadas.
Se ReturnAll for definido como true, todas as colunas serã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 ao padrão "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
-
Ao consultar dados por meio de um índice de pesquisa, diversos métodos estão disponíveis: 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. Escolha o método mais adequado para extrair dados sob múltiplas dimensões conforme as necessidades do seu negócio.
Os recursos de ordenação e paginação permitem organizar ou paginar as linhas resultantes da consulta. Para mais detalhes, consulte Sorting and paging.
O recurso de colapso (distinct) agrupa resultados com base em uma coluna específica, garantindo que cada valor desse tipo apareça apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (distinct).
Para analisar dados de uma tabela, use o recurso de agregação da operação Search ou execute instruções SQL. Essas ferramentas possibilitam obter valores mínimos e máximos, somas e contagem total de linhas. Consulte Aggregation e SQL query para saber mais.
Para recuperar todas as linhas correspondentes sem aplicar ordenação, chame as operações ParallelScan e ComputeSplits para aproveitar o recurso de varredura paralela. Veja Parallel scan para mais detalhes.