Use a consulta de correspondência para buscar dados em uma tabela com base em correspondências aproximadas. O Tablestore tokeniza os valores do campo TEXT e a palavra-chave usada na consulta conforme o tipo de analisador especificado. Assim, o Tablestore executa a consulta com base nos tokens gerados. Para campos TEXT que utilizam tokenização difusa, recomenda-se o uso da consulta de correspondência de frase (match phrase query) para garantir alto desempenho nas buscas.
Cenários
A consulta de correspondência permite localizar dados que contenham uma frase específica. Combine essa consulta com a tokenização para realizar buscas de texto completo em cenários como análise de big data, busca de conteúdo, gestão de conhecimento, análise de redes sociais, análise de logs, sistemas inteligentes de perguntas e respostas e revisão de conformidade. Por exemplo, em plataformas de e-commerce, obtenha rapidamente listas de produtos cujo título, descrição ou tags contenham determinada palavra-chave. Em logs, identifique mensagens de erro ou operações suspeitas com agilidade.
Recursos
Essa funcionalidade busca dados na tabela por meio de correspondências aproximadas. Suponha que uma linha tenha o valor "Hangzhou West Lake Scenic Area" em uma coluna do tipo TEXT e que a tokenização de palavra única esteja ativa. Se a palavra-chave da consulta for "Lake Scenic", essa linha atenderá aos critérios de busca.
Ao configurar a consulta, especifique o nome do campo e a palavra-chave desejada. A linha será retornada se pelo menos um dos seus tokens corresponder aos tokens da palavra-chave.
Durante a execução, defina também o número mínimo de tokens correspondentes no valor do campo, o peso atribuído ao campo para calcular a pontuação de relevância BM25, as colunas de retorno, a opção de exibir a contagem total de linhas correspondentes e o método de ordenação dos resultados.
Operação de API
Para executar uma consulta de correspondência, chame a operação Search ou ParallelScan e defina o tipo de consulta como MatchQuery.
Parâmetros
Parâmetro | Descrição |
fieldName | Nome do campo a ser consultado. A consulta de correspondência aplica-se a campos do tipo TEXT. |
text | Palavra-chave utilizada para comparar com o valor do campo durante a consulta. Caso o campo seja do tipo TEXT, a palavra-chave será dividida em múltiplos tokens conforme o analisador definido na criação do índice de busca. Sem essa definição, o sistema aplica a tokenização de palavra única. Por exemplo, se o campo for TEXT, o analisador for de palavra única e a palavra-chave de busca for "this is", os resultados podem incluir "..., this is tablestore", "is this tablestore", "tablestore is cool", "this" e "is". |
query | Tipo da consulta. Defina este parâmetro como matchQuery. |
offset | Posição inicial da consulta atual. |
limit | Quantidade máxima de linhas a serem retornadas pela consulta. Defina limit como 0 caso precise apenas da contagem de linhas correspondentes, sem recuperar os dados em si. |
minimumShouldMatch | Número mínimo de tokens correspondentes exigidos no valor do campo. O sistema retorna a linha somente se o valor do campo indicado em fieldName contiver pelo menos essa quantidade mínima de tokens. Nota Use o parâmetro minimumShouldMatch sempre em conjunto com o operador lógico OR. |
operator | Operador lógico. O padrão é OR, indicando que a linha atende à consulta quando o valor da coluna contém pelo menos o número mínimo de tokens correspondentes. Se definir operator como AND, a linha só será considerada válida se o valor da coluna contiver todos os tokens correspondentes. |
getTotalCount | Define se o sistema deve retornar a contagem total de linhas correspondentes. O valor padrão é false, ou seja, a contagem total não é retornada. Ativar essa opção (true) pode reduzir o desempenho da consulta. |
weight | Peso atribuído ao campo consultado para o cálculo da pontuação de relevância BM25. Esse parâmetro é comum em cenários de busca de texto completo. Quanto maior o peso, maior a pontuação de relevância BM25 do campo. Aceita números de ponto flutuante positivos. Esse valor não altera a quantidade de linhas retornadas, mas influencia diretamente a pontuação de relevância BM25 dos resultados. |
tableName | Nome da tabela de dados. |
indexName | Nome do índice de busca. |
columnsToGet | Indica se todas as colunas das linhas correspondentes devem ser retornadas. Configure os campos returnAll e columns dentro de columnsToGet. O campo returnAll tem como padrão false, o que impede o retorno de todas as colunas. Nesse caso, use o campo columns para listar as colunas desejadas. Sem essa especificação, apenas as colunas de chave primária serão retornadas. Defina returnAll como true para retornar todas as colunas. |
Observações
O Search Index oferece apenas pontuação de relevância BM25 básica e não suporta modelos personalizados de relevância.
Métodos
Execute consultas de correspondência pelo console do Tablestore, Tablestore CLI ou SDKs do Tablestore. Antes de iniciar, certifique-se de cumprir os seguintes pré-requisitos:
-
Use uma conta Alibaba Cloud ou um usuário RAM com as permissões necessárias para operações no Table Store. Para conceder acesso a um usuário RAM, consulte Conceder permissões a um usuário RAM usando uma política RAM.
Caso use um SDK ou ferramenta de linha de comando, crie um AccessKey para sua conta Alibaba Cloud ou usuário RAM, se ainda não possuir um.
Tenha criado uma tabela de dados.
Um Search Index deve estar criado para a tabela de dados.
Se for usar um SDK, inicialize o Tablestore Client.
Para uso via linha de comando, baixe e inicie a ferramenta, configure a conexão com sua instância e selecione a tabela alvo. Para mais detalhes, veja 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
Consultas de dados via Search Index consomem throughput de leitura. Para mais informações, veja Medição e faturamento do Search Index.
Perguntas frequentes
Referências
O Search Index suporta diversos tipos de consulta para buscas multidimensionais, incluindo consulta de termo, consulta de termos, consulta match all, consulta de correspondência, consulta de correspondência de frase, consulta de intervalo, consulta de prefixo, consulta de sufixo, consulta curinga, consulta curinga baseada em token, consulta booleana, consulta geográfica, consulta aninhada, busca vetorial e consulta exists.
Durante as consultas, é possível ordenar e paginar o conjunto de resultados ou aplicar colapso (deduplicação).
Para análises de dados, como encontrar valores máximos ou mínimos, somar valores ou contar linhas, use os recursos de agregação estatística ou consulta SQL.
Caso precise exportar dados rapidamente, sem se preocupar com a ordem dos resultados, use o recurso Parallel Scan.