A consulta com curinga (WildcardQuery) executa uma consulta difusa, semelhante ao operador LIKE em um banco de dados.
Para implementar a funcionalidade NOT LIKE, use uma WildcardQuery junto com o parâmetro mustNotQueries em uma consulta booleana. Para mais informações, consulte Consulta booleana.
Visão geral
Uma consulta com curinga usa caracteres especiais para correspondência de padrões, o que melhora a precisão e a eficiência da pesquisa.
Ao usar o recurso WildcardQuery, utilize uma string de consulta com curingas para corresponder a dados. Esse recurso oferece suporte aos curingas asterisco () e ponto de interrogação (?). O asterisco () representa qualquer sequência de caracteres, e o ponto de interrogação (?) representa um único caractere. Uma string de consulta pode começar com um asterisco (*) ou um ponto de interrogação (?). Por exemplo, uma consulta por table*e pode corresponder a tablestore.
A WildcardQuery é compatível com campos dos tipos de dados Keyword e FuzzyKeyword.
Keyword: Tipo de dados de string básico. O desempenho de consultas difusas, como uma consulta com curinga, em camposKeywordé ruim para grandes conjuntos de dados e se degrada à medida que o volume de dados aumenta.FuzzyKeyword: Tipo de dados otimizado para consultas difusas, como consultas com curinga. Oferece um desempenho superior e estável que não se degrada significativamente à medida que o tamanho do conjunto de dados aumenta.
O Search Index fornece três tipos de consultas com curinga para atender a vários requisitos de correspondência difusa. Para mais informações, consulte a tabela a seguir.
Este tópico descreve como executar uma WildcardQuery em campos dos tipos Keyword e FuzzyKeyword. Para saber mais sobre como implementar consultas difusas 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 o Elasticsearch. |
O desempenho da consulta se degrada à medida que a quantidade de dados indexados aumenta. |
|
FuzzyKeyword |
WildcardQuery |
Oferece um desempenho superior e estável que não se degrada significativamente à medida que 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. |
Notas de uso
O termo de consulta em uma WildcardQuery não pode exceder 32 caracteres para campos Keyword e 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 |
O nome da coluna a ser consultada. |
|
value |
A string com curingas, limitada a 32 caracteres. |
|
query |
O tipo de consulta. Defina este parâmetro como |
|
getTotalCount |
Define se a consulta 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 |
O peso da consulta. É um número de ponto flutuante positivo usado para classificaçã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 afeta a pontuação dos resultados, mas não a quantidade de linhas retornadas. |
|
tableName |
O nome da tabela de dados. |
|
indexName |
O nome do Search Index. |
|
columnsToGet |
Especifica quais colunas retornar. Inclui as configurações returnAll e columns. Por padrão, Se |
Como usar
Execute 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, uma WildcardQuery em um campo FuzzyKeyword é suportada apenas por meio de SDKs do Tablestore.
-
Use uma conta Alibaba Cloud ou um usuário RAM com as permissões necessárias para operações do Table Store. Para conceder permissões a um usuário RAM, consulte Conceda permissões a um usuário RAM usando uma política do RAM.
Se usar um SDK ou uma ferramenta de linha de comando, crie um AccessKey para sua conta Alibaba Cloud ou usuário RAM, caso ainda não tenha um.
Ter um Search Index criado para a tabela de dados.
Se usar um SDK, inicialize o Tablestore Client.
Se 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 baixe a ferramenta de linha de comando, Inicie a ferramenta e configure as informações de conexão e Operações da 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 oferece suporte a vários tipos de consulta para consultas de dados multidimensionais, incluindo consulta de termo, consulta de termos, consulta de correspondência total, consulta de correspondência, consulta de correspondência de frase, consulta de intervalo, consulta de prefixo, consulta de sufixo, consulta com curinga, consulta com curinga baseada em token, consulta booleana, consulta geográfica, consulta aninhada, pesquisa vetorial, e consulta de existência.
Ao consultar dados, use classificar e paginar para o conjunto de resultados ou execute colapso (deduplicação).
Para análise de dados, como encontrar o valor máximo ou mínimo, calcular uma soma ou contar linhas, use os recursos agregação estatística ou consulta SQL.
Para exportar dados rapidamente, independentemente da ordem do conjunto de resultados, use o recurso Parallel Scan.