Todos os produtos
Search
Central de documentação

Tablestore:Prefix query

Última atualização: Sep 29, 2026

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 hang corresponde a hangzhou, mas não a beijing, shanghai ou harbin.

  • O prefixo ha corresponde tanto a hangzhou quanto a harbin.

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 é false.

Definir este parâmetro como true aumenta a latência da consulta.

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 returnAll e columns.

Por padrão, returnAll é false. Se columns não estiver definido, o sistema retorna apenas as colunas de chave primária. Se columns estiver definido, o sistema retorna apenas as colunas especificadas.

Defina returnAll como true para retornar todas as colunas.

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.

Importante

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.

Usar o console

  1. Acesse a aba Index Management.

    1. Faça login no console do Table Store.

    2. Na barra de navegação superior, selecione um grupo de recursos e uma região.

    3. Na página Overview, clique no nome da instância ou em Instance Management na coluna Actions.

    4. Na aba Instance Details, dentro da aba Data Table List, clique no nome da tabela de dados ou em Index Management na coluna Actions.

  2. Na aba Index Management, localize o Search Index de destino e clique em Search na coluna Actions.

  3. Na caixa de diálogo Search, configure as condições de consulta.

    1. Por padrão, o sistema retorna todas as colunas. Para retornar colunas específicas, desative Retrieve All Columns e insira os nomes das colunas, separados por vírgulas.

      Nota

      Por padrão, o Table Store retorna as colunas de chave primária da tabela de dados.

    2. Selecione um operador lógico: And, Or ou Not.

      Se selecionar And, a consulta retornará dados que atendem a todas as condições especificadas. Se selecionar Or, a consulta retornará dados que atendem a pelo menos uma das condições especificadas. Se selecionar Not, a consulta retornará dados que não atendem às condições especificadas.

    3. Selecione um campo de índice e clique em Add.

    4. Defina o tipo de consulta como Prefix query (PrefixQuery) e insira o valor do prefixo.

    5. Por padrão, a classificação está desativada. Para classificar os resultados por um campo específico, ative Enable Sorting, adicione o campo de classificação e configure a ordem de classificação.

    6. Por padrão, a agregação está desativada. Para executar uma agregação estatística em um campo específico, ative Enable Aggregation, adicione o campo para agregação e configure as definições de agregação.

  4. Clique em OK.

    Os resultados da consulta aparecem na aba Index Management.

Usar a ferramenta de linha de comando

Execute o comando search para consultar dados usando um índice de pesquisa. Para mais informações, consulte Índice de pesquisa.

Importante

A ferramenta de linha de comando aceita consultas por prefixo apenas em colunas Keyword, e não em colunas FuzzyKeyword.

  1. Execute o comando search para consultar dados usando o índice de pesquisa search_index e retornar todas as colunas indexadas.

    search -n search_index --return_all_indexed
  2. Insira as condições de consulta quando solicitado. O código a seguir é um exemplo:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "PrefixQuery",
            "Query": {
                "FieldName": "col_keyword",
                "Prefix": "hangzhou"
            }
        }
    }

Usar um SDK

Execute uma consulta por prefixo usando o Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK ou PHP SDK. O exemplo a seguir usa o SDK para Java.

Nota

A instrução de consulta é idêntica para os tipos Keyword e FuzzyKeyword. A única diferença é o tipo de dados da coluna consultada.

O exemplo a seguir consulta linhas cujo campo category é do tipo FuzzyKeyword e começa com hang. A consulta retorna até 10 linhas e o número total de linhas correspondentes.

String tableName = "example_table";
String indexName = "example_index";

PrefixQuery prefixQuery = new PrefixQuery();
prefixQuery.setFieldName("category");
prefixQuery.setPrefix("hang");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(prefixQuery);
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());

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