Uma consulta por prefixo (PrefixQuery) localiza linhas em um índice de pesquisa cujo valor de campo começa com uma string especificada.
Visão geral
A PrefixQuery corresponde a valores de coluna que começam com um prefixo definido. O comportamento da consulta varia conforme o tipo de dados da coluna:
Keyword: tipo de dados básico de string. O desempenho da consulta diminui à medida que o volume de dados aumenta. Adequado apenas para pequenos conjuntos de dados.
FuzzyKeyword: tipo de dados otimizado para buscas aproximadas, como consultas por prefixo. O desempenho permanece estável independentemente do volume de dados. Recomendado para a maioria dos cenários de consulta por prefixo.
Text: os valores da coluna são tokenizados antes da indexação. Uma linha corresponde se pelo menos um dos tokens resultantes começar com o prefixo especificado. Devido à imprevisibilidade da tokenização, os resultados podem ser inesperados. Este tipo de dados existe apenas para compatibilidade; use-o com cautela.
Como escolher um tipo de dados
A tabela a seguir resume a adequação de cada tipo de dados para consultas por prefixo.
|
Tipo |
Desempenho |
Recomendação |
|
Keyword |
Diminui conforme o volume de dados aumenta |
Apenas para pequenos conjuntos de dados |
|
FuzzyKeyword |
Estável independentemente do volume de dados |
Recomendado para a maioria dos cenários |
|
Text |
Resultados imprevisíveis devido à tokenização |
Não recomendado |
Exemplos de correspondência de prefixo
Considere uma coluna com os seguintes valores: hangzhou, beijing, shanghai e harbin.
O prefixo
hangcorresponde ahangzhou, mas não abeijing,shanghaiouharbin.O prefixo
hacorresponde tanto ahangzhouquanto aharbin.
APIs
Execute uma consulta por prefixo com a API Search ou ParallelScan. O tipo de consulta é PrefixQuery.
Parâmetros
|
Parâmetro |
Descrição |
|
query |
Tipo de consulta. Defina como PrefixQuery. |
|
fieldName |
Nome da coluna de destino. |
|
prefix |
String de prefixo para corresponder aos valores da coluna. Em colunas Text, os valores são tokenizados antes da correspondência. A linha será retornada se pelo menos um token começar com o prefixo especificado. |
|
getTotalCount |
Define se o número total de linhas correspondentes deve ser retornado. O valor padrão é Definir este parâmetro como |
|
weight |
Peso da consulta. Deve ser um número de ponto flutuante positivo. Em cenários de pesquisa de texto completo, ajusta a contribuição da coluna para a pontuação de relevância BM25. Valores maiores aumentam a influência da coluna na classificação. Este parâmetro não afeta o conjunto de resultados retornado, apenas a pontuação BM25 de cada linha. |
|
tableName |
Nome da tabela de dados. |
|
indexName |
Nome do índice de pesquisa. |
|
columnsToGet |
Colunas a retornar para cada linha correspondente. Configure com os parâmetros Por padrão, Defina |
Uso
Faça consultas por prefixo pelo console do Tablestore, pela ferramenta de linha de comando ou por um SDK. Antes de começar, cumpra os pré-requisitos a seguir.
Atualmente, a PrefixQuery em colunas FuzzyKeyword tem suporte apenas no SDK do Tablestore. O console e a ferramenta de linha de comando aceitam apenas colunas Keyword.
-
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.
Se usar um SDK ou a ferramenta de linha de comando, crie um AccessKey para sua conta Alibaba Cloud ou usuário RAM, caso ainda não tenha um.
Você já criou uma tabela de dados.
Um Índice de Pesquisa foi criado para a tabela de dados.
Se usar um SDK, inicialize o Cliente Tablestore.
Se usar a ferramenta de linha de comando, baixe-a e inicie-a, 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
Consultar dados por meio de um Índice de Pesquisa consome throughput de leitura. Para mais informações, consulte Medição e faturamento do Índice de Pesquisa.
Perguntas frequentes
Documentos relacionados
O Índice de Pesquisa aceita vários tipos de consulta para buscas multidimensionais, incluindo consulta por termo, consulta por termos, consulta match all, consulta match, consulta phrase match, consulta por intervalo, consulta por prefixo, consulta por sufixo, consulta wildcard, consulta wildcard baseada em token, consulta booleana, consulta geográfica, consulta aninhada, pesquisa vetorial e consulta exists.
Ao consultar dados, você pode ordenar e paginar o conjunto de resultados ou aplicar colapso (deduplicação).
Para análise de dados, como obter valores máximos ou mínimos, somar ou contar linhas, use os recursos de agregação estatística ou consulta SQL.
Para exportar dados rapidamente sem considerar a ordem do conjunto de resultados, use o recurso Parallel Scan.