Uma consulta por prefixo (PrefixQuery) localiza linhas em um índice de pesquisa em que o valor de um campo começa com uma string especificada.
Visão geral
A PrefixQuery corresponde aos valores de coluna que começam com um prefixo especificado. O comportamento da consulta depende do tipo de dados da coluna:
Keyword: Tipo de dados de string básico. Conforme o volume de dados aumenta, o desempenho da consulta diminui. Adequado apenas para pequenos conjuntos de dados.
FuzzyKeyword: Tipo de dados otimizado para pesquisas aproximadas (fuzzy), como consultas por prefixo. O desempenho da consulta permanece estável, independentemente do volume de dados. Recomendado para a maioria dos cenários de consulta por prefixo.
Text: Tipo de dados com valores de coluna tokenizados antes da indexação. Uma linha corresponde ao filtro se pelo menos um token resultante começar com o prefixo especificado. Devido à natureza da tokenização, os resultados da consulta podem ser imprevisíveis. O suporte a este tipo de dados existe apenas para fins de compatibilidade, portanto, use-o com cautela.
Escolha 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
Suponha que uma coluna contenha os seguintes valores: hangzhou, beijing, shanghai e harbin.
O prefixo
hangcorresponde ahangzhou, mas não abeijing,shanghaiouharbin.O prefixo
hacorresponde tanto ahangzhouquanto aharbin.
APIs
Use a API Search ou ParallelScan para executar uma consulta por prefixo. O tipo de consulta é PrefixQuery.
Parâmetros
|
Parâmetro |
Descrição |
|
query |
O tipo de consulta. Defina como PrefixQuery. |
|
fieldName |
O nome da coluna de destino. |
|
prefix |
A string de prefixo usada para corresponder aos valores da coluna. Para colunas do tipo Text, o sistema tokeniza os valores da coluna antes da correspondência. Uma linha é considerada correspondente se pelo menos um token começar com o prefixo especificado. |
|
getTotalCount |
Especifica se o sistema deve retornar o número total de linhas correspondentes. O valor padrão é Definir este parâmetro como |
|
weight |
O peso da consulta. Deve ser um número de ponto flutuante positivo. Em cenários de pesquisa de texto completo, este parâmetro ajusta a contribuição da coluna para a pontuação de relevância BM25. Um valor maior aumenta 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 nos resultados. |
|
tableName |
O nome da tabela de dados. |
|
indexName |
O nome do índice de pesquisa. |
|
columnsToGet |
Especifica as colunas a serem retornadas para cada linha correspondente. Configure esse parâmetro usando Por padrão, Defina |
Uso
Execute consultas por prefixo usando o console do Tablestore, a ferramenta de linha de comando ou um SDK. Antes de começar, cumpra os seguintes pré-requisitos.
Atualmente, a PrefixQuery em colunas FuzzyKeyword tem suporte apenas por meio do 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 do Table Store. Para conceder permissões a um usuário RAM, consulte Conceder 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 uma AccessKey para sua conta Alibaba Cloud ou usuário RAM, caso ainda não possua uma.
Certifique-se de ter criado uma tabela de dados.
Certifique-se de ter um Search Index criado para a tabela de dados.
Se usar um SDK, inicializar o Tablestore Client.
Se usar a ferramenta de linha de comando, baixe e inicie a ferramenta, configure a conexão com a sua instância e selecione a tabela de destino. Para mais informações, consulte baixe a ferramenta de linha de comando, Iniciar a ferramenta e configurar as informações de conexão e Operações de tabela de dados.
Faturamento
A consulta de dados usando um Search Index consome throughput de leitura. Para mais informações, consulte Medição e faturamento do Search Index.
Perguntas frequentes
Documentos relacionados
O Search Index aceita vários tipos de consulta para 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 por prefixo, consulta por 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, você pode classificar e paginar o conjunto de resultados ou executar 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 de agregação estatística ou consulta SQL.
Para exportar dados rapidamente, independentemente da ordem do conjunto de resultados, use o recurso Parallel Scan.