Uma consulta por sufixo (SuffixQuery) localiza, em um índice de pesquisa, dados que terminam com uma string específica. Por exemplo, é possível consultar a entrega de um pacote usando os quatro últimos dígitos de um número de telefone.
Como funciona
Para executar uma SuffixQuery, especifique o valor do sufixo a buscar.
Apenas o tipo de dado FuzzyKeyword oferece suporte a consultas por sufixo. O FuzzyKeyword é otimizado para operações de pesquisa aproximada, como SuffixQuery, PrefixQuery e wildcard query, e oferece desempenho estável independentemente do volume de dados.
Campos do tipo
FuzzyKeywordnão oferecem suporte a ordenação ou agregação. Caso precise ordenar ou agregar dados em um campoFuzzyKeyword, crie umavirtual columndo tipoKeywordpara essa finalidade.Para simular uma consulta por sufixo em um campo
Keyword, inverta a string ao gravar os dados e, em seguida, use uma consulta por prefixo (PrefixQuery) para pesquisar os dados.
API
Chame a operação Search ou ParallelScan com o tipo de consulta definido como SuffixQuery.
Parâmetros
Solicitação de pesquisa
request é um objeto SearchRequest que contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
tableName (obrigatório) |
String |
O nome da tabela de dados. |
|
indexName (obrigatório) |
String |
O nome do índice de pesquisa. |
|
searchQuery (obrigatório) |
SearchQuery |
A condição de consulta e as configurações gerais da consulta. |
|
columnsToGet (opcional) |
SearchRequest.ColumnsToGet |
As colunas a retornar. Se não configurar este parâmetro, o sistema retornará apenas as colunas de chave primária. |
|
timeoutInMillisecond (opcional) |
int |
O tempo limite de consulta no nível da solicitação, em milissegundos. O valor padrão é |
|
routingValues (opcional) |
|
Os valores de chave primária que correspondem aos campos de roteamento personalizados. Não defina este parâmetro se o roteamento personalizado não estiver configurado. |
Configurações de consulta
request.searchQuery é um objeto SearchQuery que contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
query (obrigatório) |
Query |
A condição de consulta. Defina este parâmetro como um objeto |
|
offset (opcional) |
Integer |
A posição a partir da qual iniciar a consulta atual. |
|
limit (opcional) |
Integer |
O número máximo de linhas a retornar. Defina este parâmetro como |
|
collapse (opcional) |
Collapse |
A configuração de colapso usada para desduplicar resultados por um campo especificado. Para mais informações, consulte Colapso (distinto). |
|
sort (opcional) |
Sort |
A ordenação dos resultados. Campos |
|
trackTotalCount (opcional) |
int |
O número máximo de linhas correspondentes a contar. O valor padrão é |
|
filter (opcional) |
SearchFilter |
Um filtro pós-consulta aplicado aos resultados de |
|
aggregationList (opcional) |
|
As configurações de agregação. Campos |
|
groupByList (opcional) |
|
As configurações de agrupamento. Campos |
|
token (opcional) |
byte[] |
O token de paginação. Defina o |
Condição de consulta
request.searchQuery.query é um objeto SuffixQuery que contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
fieldName (obrigatório) |
String |
O nome do campo |
|
suffix (obrigatório) |
String |
A string de consulta. O valor completo do campo deve terminar com esta string. A pesquisa diferencia maiúsculas de minúsculas. |
|
weight (opcional) |
float |
O peso de relevância da condição de consulta. O valor deve ser um número de ponto flutuante positivo. Um valor maior confere mais influência à condição na pontuação de relevância BM25. Este parâmetro não altera quais linhas correspondem à pesquisa ou quantas linhas são retornadas. Ele afeta a ordem dos resultados apenas ao usar o |
Colunas retornadas
request.columnsToGet é um objeto SearchRequest.ColumnsToGet que contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
columns (opcional) |
|
As colunas de atributo a retornar. Configure este parâmetro apenas se tanto |
|
returnAll (opcional) |
boolean |
Indica se todas as colunas de atributo da tabela de dados devem ser retornadas. O valor padrão é |
|
returnAllFromIndex (opcional) |
boolean |
Indica se todas as colunas de atributo indexadas devem ser retornadas. O valor padrão é |
Uso
Execute uma consulta por sufixo usando o console do Tablestore ou um SDK. Antes de começar, cumpra os seguintes pré-requisitos:
Crie um
RAM usere conceda a ele permissões para acessar o Tablestore. Para mais informações, consulte Use o par de AccessKey de um usuário RAM para acessar o Tablestore.Crie uma tabela de dados. Para mais informações, consulte Operações em tabelas de dados.
Crie um índice de pesquisa para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
Faturamento
Consultar 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 diversos tipos de pesquisa 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 de prefixo, consulta de sufixo, consulta de curinga, consulta de curinga baseada em token, consulta booleana, consulta geográfica, consulta aninhada, pesquisa vetorial, e consulta de existência.
Ao consultar dados, você pode usar os recursos de ordenar e paginar no conjunto de resultados ou de colapso (desduplicação).
Para analisar 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.