Ao executar uma consulta com curinga usando o SDK, use os caracteres curinga asterisco () e ponto de interrogação (?) para pesquisar dados. O asterisco () corresponde a uma string de qualquer tamanho antes, depois ou no meio do termo de pesquisa. 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 a 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 melhorar o desempenho. Isso evita a degradação do desempenho conforme o volume de dados aumenta.
Para executar uma pesquisa NOT LIKE, use um WildcardQuery com o parâmetro mustNotQueries de um BoolQuery.
Pré-requisitos
Inicialize uma instância OTSClient. Para mais informações, consulte Inicializar uma instância OTSClient.
Crie uma tabela de dados e grave dados nela. Para mais informações, consulte Criar tabelas de dados e Gravar dados.
Crie um índice de pesquisa para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
Parâmetros
|
Parâmetro |
Descrição |
|
tableName |
O nome da tabela de dados. |
|
indexName |
O nome do índice de pesquisa. |
|
offset |
A posição a partir da qual a consulta atual começa. |
|
limit |
O número máximo de linhas que a consulta atual deve retornar. |
|
queryType |
O tipo de consulta. Para isso, defina este parâmetro como TableStore.QueryType.WILDCARD_QUERY. |
|
fieldName |
O nome da coluna que você deseja consultar. |
|
value |
A string que contém caracteres curinga. A string pode ter até 32 caracteres. |
|
getTotalCount |
Especifica se a consulta deve retornar o número total de linhas correspondentes. Por padrão, o valor é false, indicando que o sistema não retorna o número total de linhas correspondentes. Definir o parâmetro getTotalCount como true compromete o desempenho da consulta. |
|
columnToGet |
Especifica se a consulta deve retornar todas as colunas de cada linha correspondente. 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 pesquisa suportam os seguintes tipos de consulta: consulta de termo, consulta de termos, consulta de correspondência total, consulta de correspondência, consulta de correspondência de frase, consulta de prefixo, consulta de intervalo, consulta com curinga, consulta booleana, consulta geográfica, consulta aninhada, consulta de vetor e consulta de existência. Por fim, selecione um tipo de consulta para pesquisar dados conforme os requisitos do seu negócio.
Para classificar ou paginar as linhas que atendem à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 de colapso (distinct). Dessa forma, os dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para mais informações, consulte Colapso (distinct).
Para analisar dados em uma tabela de dados, como obter os valores extremos, a soma e o 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 que atendem às condições de consulta sem a necessidade de classificá-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.