Uma consulta com curinga (WildcardQuery) executa uma busca aproximada, semelhante ao operador LIKE em bancos de dados.
Para implementar a funcionalidade NOT LIKE, use uma WildcardQuery combinada com o parâmetro mustNotQueries em uma consulta booleana. Para mais informações, consulte Consulta booleana.
Visão geral
A consulta com curinga usa caracteres especiais para correspondência de padrões, o que melhora a precisão e a eficiência da busca.
Ao usar o recurso WildcardQuery, você pode empregar uma string de consulta com curingas para corresponder aos dados. Esse recurso aceita os curingas asterisco () e ponto de interrogação (?). O asterisco () representa qualquer sequência de caracteres; o ponto de interrogação (?) representa um único caractere. A string de consulta pode começar com asterisco (*) ou ponto de interrogação (?). Por exemplo, uma consulta por table*e pode corresponder a tablestore.
O tipo WildcardQuery é compatível com campos dos tipos de dados Keyword e FuzzyKeyword.
Keyword: tipo básico de string. O desempenho de consultas aproximadas, como a consulta com curinga, em camposKeywordé baixo para grandes conjuntos de dados e degrada à medida que o volume de dados aumenta.FuzzyKeyword: tipo de dado otimizado para consultas aproximadas, como as consultas com curinga. Oferece desempenho superior e estável, sem degradação significativa conforme o tamanho do conjunto de dados cresce.
O Search Index oferece três tipos de consultas com curinga para atender a diversos requisitos de correspondência aproximada. Para mais detalhes, consulte a tabela a seguir.
Este tópico descreve como executar uma WildcardQuery em campos dos tipos Keyword e FuzzyKeyword. Para saber como implementar consultas aproximadas em campos do tipo Text, consulte Consulta com curinga baseada em tokenização.
|
Tipo |
Método de consulta |
Vantagem |
Desvantagem |
|
Keyword |
WildcardQuery |
Compatível com Elasticsearch. |
O desempenho da consulta degrada conforme o volume de dados indexados aumenta. |
|
FuzzyKeyword |
WildcardQuery |
Oferece desempenho superior e estável, sem degradação significativa conforme o tamanho dos dados aumenta. |
Causa alguma expansão de dados. |
|
Text |
MatchPhraseQuery |
Suporta correspondência sem distinção entre maiúsculas e minúsculas. |
Causa alguma expansão de dados. |
Observações de uso
O termo de consulta em uma WildcardQuery não pode exceder 32 caracteres, tanto para campos Keyword quanto FuzzyKeyword.
API
Para executar uma consulta com curinga, chame a operação Search ou parallel scan e defina o tipo de consulta como WildcardQuery.
Parâmetros
|
Parâmetro |
Descrição |
|
fieldName |
Nome da coluna a ser consultada. |
|
value |
String contendo curingas, que não pode exceder 32 caracteres. |
|
query |
Tipo da consulta. Defina este parâmetro como |
|
getTotalCount |
Especifique se deve retornar o número total de linhas correspondentes. O valor padrão é Retornar o número total de linhas correspondentes pode afetar o desempenho da consulta. |
|
weight |
Peso da consulta, um número de ponto flutuante positivo usado para ordenação baseada em pontuação na busca de texto completo. Um peso maior atribui uma pontuação mais alta à coluna nos resultados da consulta. Este parâmetro afeta as pontuações dos resultados retornados, mas não altera a quantidade de resultados. |
|
tableName |
Nome da tabela de dados. |
|
indexName |
Nome do Search Index. |
|
columnsToGet |
Especifique quais colunas retornar. Inclui as configurações returnAll e columns. Por padrão, Se você definir |
Como usar
Você pode executar uma consulta com curinga usando o console do Tablestore, uma ferramenta de linha de comando (CLI) ou um SDK. Antes de começar, conclua as seguintes preparações:
Atualmente, a WildcardQuery em um campo FuzzyKeyword é suportada apenas pelos SDKs do Tablestore.
-
Use uma conta Alibaba Cloud ou um usuário RAM com as permissões necessárias para operações no Table Store. Para conceder permissões a um usuário RAM, consulte Conceder permissões a um usuário RAM usando uma política RAM.
Caso utilize um SDK ou ferramenta de linha de comando, crie um AccessKey para sua conta Alibaba Cloud ou usuário RAM, caso ainda não possua um.
Você já criou uma tabela de dados.
Um Search Index foi criado para a tabela de dados.
Se utilizar um SDK, inicialize o Tablestore Client.
Ao usar a ferramenta de linha de comando, baixe e inicie a ferramenta, configure a conexão com sua instância e selecione a tabela de destino. Para mais informações, consulte Baixar a ferramenta de linha de comando, Iniciar a ferramenta e configurar informações de conexão e Operações de tabela de dados.
Faturamento
A consulta de dados por meio de um Search Index consome throughput de leitura. Para mais informações, consulte Medição e faturamento do Search Index.
Perguntas frequentes
Tópicos relacionados
O Search Index suporta vários tipos de consulta para buscas multidimensionais de dados, incluindo consulta de termo, consulta de termos, consulta match all, consulta match, consulta phrase match, consulta de intervalo, consulta de prefixo, consulta de sufixo, consulta com curinga, consulta com curinga baseada em tokens, consulta booleana, consulta geográfica, consulta aninhada, busca vetorial e consulta exists.
Durante a consulta de dados, é possível ordenar e paginar o conjunto de resultados ou realizar colapsagem (deduplicação).
Para análise de dados, como encontrar valores máximos ou mínimos, calcular somas ou contar linhas, utilize os recursos de agregação estatística ou consulta SQL.
Para exportar dados rapidamente, independentemente da ordem do conjunto de resultados, utilize o recurso Parallel Scan.