Use a consulta com curinga para realizar buscas aproximadas. Esse tipo de consulta funciona como o operador LIKE em bancos de dados e localiza dados que contêm uma palavra ou frase específica no texto.
Informações básicas
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, no meio ou no final do termo de pesquisa. O ponto de interrogação (?) substitui um único caractere em uma posição específica. A string pode começar com asterisco () ou ponto de interrogação (?). Por exemplo, ao pesquisar pela string "tablee", o termo "tablestore" será encontrado.
Para consultar dados usando *word* (equivalente a WHERE field_a LIKE '%word%' em SQL), use a consulta com curinga baseada em tokenização. Para mais informações, consulte Consulta com curinga baseada em tokenização. Essa abordagem mantém o desempenho da consulta mesmo com o aumento do volume de dados.
Para usar o operador NOT LIKE, combine a consulta com curinga com o parâmetro mustNotQueries da consulta booleana. Para mais informações, consulte Consulta booleana.
Pré-requisitos
Cliente do Tablestore inicializado. Para mais informações, consulte Inicializar um cliente do Tablestore.
Tabela de dados criada e preenchida. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Índice de pesquisa criado para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
Parâmetros
|
Parâmetro |
Descrição |
|
fieldName |
Nome da coluna a ser consultada. |
|
value |
String com curingas, limitada a 32 caracteres. |
|
query |
Tipo da consulta. Defina este parâmetro como |
|
getTotalCount |
Define se o número total de linhas correspondentes deve ser retornado. O valor padrão é Retornar a contagem total de linhas correspondentes pode afetar o desempenho da consulta. |
|
weight |
Peso da consulta. É um número de ponto flutuante positivo usado na ordenação por pontuação em pesquisas de texto completo. Um peso maior atribui uma pontuação mais alta à coluna nos resultados da consulta. Este parâmetro altera as pontuações dos resultados retornados, mas não modifica a quantidade de resultados. |
|
tableName |
Nome da tabela de dados. |
|
indexName |
Nome do Search Index. |
|
columnsToGet |
Especifique quais colunas retornar, incluindo as configurações returnAll e columns. Por padrão, Se você definir |
Exemplos
O código de exemplo abaixo demonstra como consultar linhas nas quais o valor da coluna Col_Keyword corresponde ao padrão "hang*u".
/**
* Search the table for rows in which the value of the Col_Keyword column matches the "hang*u" pattern.
* @param client
*/
private static void wildcardQuery(SyncClient client) {
SearchQuery searchQuery = new SearchQuery();
WildcardQuery wildcardQuery = new WildcardQuery(); // Use WildcardQuery.
wildcardQuery.setFieldName("Col_Keyword");
wildcardQuery.setValue("hang*u"); // Specify a string that contains one or more wildcard characters in wildcardQuery.
searchQuery.setQuery(wildcardQuery);
//searchQuery.setGetTotalCount(true); // Specify that the total number of matched rows is returned.
SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
// You can configure the columnsToGet parameter to specify the columns to return or specify that all columns are returned. If you do not configure this parameter, only the primary key columns are returned.
//SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
//columnsToGet.setReturnAll(true); // Specify that all columns are returned.
//columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Specify the columns that you want to return.
//searchRequest.setColumnsToGet(columnsToGet);
SearchResponse resp = client.search(searchRequest);
//System.out.println("TotalCount: " + resp.getTotalCount()); // Display the total number of matched rows instead of the number of returned rows.
System.out.println("Row: " + resp.getRows());
}
Perguntas frequentes
Referências
-
Ao consultar dados com um índice de pesquisa, você tem à disposição os seguintes métodos: consulta por termo, consulta por termos, consulta match all, consulta match, consulta match phrase, consulta por prefixo, consulta por intervalo, consulta com curinga, consulta geográfica, consulta vetorial KNN, consulta booleana, consulta aninhada e consulta exists. Após criar o índice de pesquisa, utilize esses métodos para consultar 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 que atendem aos critérios da consulta. Para mais informações, consulte Realizar ordenação e paginação.
O recurso de collapse (distinct) agrupa o conjunto de resultados com base em uma coluna específica, garantindo que dados do tipo especificado apareçam apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (distinct).
Para analisar dados de uma tabela, chame a operação Search para usar o recurso de agregação ou utilize o recurso de consulta SQL. É possível obter valores máximos e mínimos, somas e contagens de linhas, por exemplo. Para mais informações, consulte Agregação e Consulta SQL.
Caso precise obter todas as linhas correspondentes aos critérios sem ordená-las, chame as operações ParallelScan e ComputeSplits para utilizar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.