Ao executar uma consulta com curinga, use os caracteres curinga asterisco () e ponto de interrogação (?) para pesquisar dados. O asterisco () corresponde a uma string de qualquer comprimento no início, meio ou fim do termo de busca. O ponto de interrogação (?) corresponde a 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" é encontrado.
Se o padrão de consulta for *word* (equivalente a WHERE field_a LIKE '%word%' em SQL), use o recurso de consultas com curinga baseadas em token para obter melhor desempenho. O desempenho não degrada conforme o volume de dados aumenta.
Para executar uma busca NOT LIKE, use um WildcardQuery com o parâmetro mustNotQueries de um BoolQuery.
Pré-requisitos
Uma instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Uma tabela de dados criada e com dados gravados. Para mais informações, consulte Criar tabelas de dados e Gravar dados.
Um í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 |
|
tableName |
Nome da tabela de dados. |
|
indexName |
Nome do índice de busca. |
|
offset |
Posição inicial da consulta atual. |
|
limit |
Número máximo de linhas a retornar na consulta atual. |
|
queryType |
Tipo de consulta. Defina este parâmetro como TableStore.QueryType.WILDCARD_QUERY. |
|
fieldName |
Nome da coluna a consultar. |
|
value |
String que contém caracteres curinga. O comprimento máximo é de 32 caracteres. |
|
getTotalCount |
Especifique se o total de linhas correspondentes às condições de consulta deve ser retornado. Por padrão, o valor deste parâmetro é false, o que indica que o total de linhas não é retornado. Definir o parâmetro getTotalCount como true compromete o desempenho da consulta. |
|
columnToGet |
Especifique se todas as colunas de cada linha correspondente devem ser retornadas. Configure returnType e returnNames para este parâmetro.
|
Exemplos
O código de exemplo a seguir pesquisa linhas nas quais o valor de Col_Keyword corresponde à string "table*e".
/**
* Search the table for rows in which the value of Col_Keyword matches "table*e".
*/
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // To query only the number of rows that meet the query conditions without returning specific data, you can set limit to 0. This way, Tablestore returns the number of rows that meet the query conditions without specific data from the table.
query: { // Set the query type to TableStore.QueryType.WILDCARD_QUERY.
queryType: TableStore.QueryType.WILDCARD_QUERY,
query: {
fieldName: "Col_Keyword",
value: "table*e" // Specify a string that contains one or more wildcard characters in a wildcard query.
}
},
getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. The default value of this parameter is false, which indicates that the total number of rows that meet the query conditions is not returned.
},
columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns.
returnType: TableStore.ColumnReturnType.RETURN_ALL
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
Perguntas frequentes
Referências
-
Os índices de busca oferecem suporte aos seguintes tipos de consulta: consulta por termo, consulta por termos, match all query, match query, match phrase query, consulta por prefixo, consulta por intervalo, consulta com curinga, consulta booleana, consulta geográfica, nested query, consulta vetorial e exists query. Selecione um tipo de consulta para consultar dados conforme seus requisitos de negócio.
Para classificar ou paginar as linhas correspondentes às condições de consulta, use o recurso de classificação e paginação. Para mais informações, consulte Classificação e paginação.
Para agrupar o conjunto de resultados com base em uma coluna específica, use o recurso collapse (distinct). Dessa forma, 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 de dados, 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 Agregação e Consulta SQL.
Para obter rapidamente todas as linhas correspondentes às condições de consulta sem precisar classificá-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.