Todos os produtos
Search
Central de documentação

Tablestore:Prefix query

Última atualização: Aug 20, 2026

Uma consulta por prefixo com o Tablestore SDK for Java identifica valores de campo ou tokens que começam com uma string especificada e retorna as linhas correspondentes ou a contagem total.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize o cliente.

Descrição do recurso

A consulta por prefixo localiza valores de campo ou tokens em um campo específico que começam com a string de consulta. Para campos Keyword e FuzzyKeyword (consulte String types), todo o valor do campo deve começar com a string de consulta, e a correspondência diferencia maiúsculas de minúsculas. Em um campo Text, uma linha corresponde se qualquer token gerado pelo analisador começar com a string de consulta. A própria string de consulta não passa por tokenização.

Nota

Para grandes conjuntos de dados, use o tipo FuzzyKeyword, otimizado para consultas difusas. O desempenho da consulta por prefixo em um campo Keyword diminui conforme o volume de dados indexados aumenta; portanto, use esse tipo apenas para pequenos conjuntos de dados. O tipo Text existe para fins de compatibilidade. Como a tokenização torna os resultados dependentes da configuração, ele não é adequado para corresponder a strings completas.

Ao chamar search, defina o tipo de consulta como PrefixQuery e use SearchQuery para configurar o número de linhas retornadas, o rastreamento da contagem total e outros comportamentos comuns de consulta.

SearchResponse search(SearchRequest request)

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());

Parâmetros

Solicitação de busca

request é um objeto SearchRequest que contém os seguintes parâmetros.

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela.

indexName (obrigatório)

String

Nome do índice de busca.

searchQuery (obrigatório)

SearchQuery

Condição de consulta e configurações gerais de busca.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

Configurações das colunas retornadas. Se você omitir este parâmetro, apenas as colunas de chave primária serão retornadas.

timeoutInMillisecond (opcional)

int

Tempo limite da consulta no nível da solicitação, em milissegundos. O valor padrão é -1, que não define um tempo limite separado para a consulta.

routingValues (opcional)

List<PrimaryKey>

Valores de chave primária para campos de roteamento personalizado. Omita este parâmetro se o índice não utilizar roteamento personalizado.

Configurações de consulta

request.searchQuery é um objeto SearchQuery que contém os seguintes parâmetros.

Nome

Tipo

Descrição

query (obrigatório)

Query

Condição da consulta. Defina este parâmetro como PrefixQuery para executar uma consulta por prefixo.

offset (opcional)

Integer

Posição inicial da consulta.

limit (opcional)

Integer

Número máximo de linhas a retornar. Defina este parâmetro como 0 para não retornar nenhuma linha.

highlight (opcional)

Highlight

Configurações de resumo e destaque para campos Text. Para detalhes de configuração, consulte Summary and highlighting.

collapse (opcional)

Collapse

Configurações de colapso de campos, que removem duplicatas dos resultados com base em um campo especificado. Para detalhes de configuração, consulte Collapse query results.

sort (opcional)

Sort

Ordem de classificação dos resultados. Para detalhes de configuração, consulte Sort and paginate results.

trackTotalCount (opcional)

int

Contagem máxima esperada de linhas correspondentes. O valor padrão é TRACK_TOTAL_COUNT_DISABLED, que desativa a contagem. Defina este parâmetro como TRACK_TOTAL_COUNT para contar todas as linhas correspondentes. Um valor menor melhora o desempenho da consulta.

filter (opcional)

SearchFilter

Filtro aplicado aos resultados de query.

aggregationList (opcional)

List<Aggregation>

Configurações de agregação. Para detalhes de configuração, consulte Aggregation.

groupByList (opcional)

List<GroupBy>

Configurações de agrupamento. Para detalhes de configuração, consulte Aggregation.

token (opcional)

byte[]

Token de paginação. Defina este parâmetro com o valor nextToken da resposta anterior para continuar a leitura das linhas. Ao definir token, o SDK limpa sort, pois o token já contém as condições de ordenação.

Condição de consulta

request.searchQuery.query é um objeto PrefixQuery que contém os seguintes parâmetros.

Nome

Tipo

Descrição

fieldName (obrigatório)

String

Nome do campo indexado a ser consultado.

prefix (obrigatório)

String

String de consulta. Para um campo Keyword ou FuzzyKeyword, o valor do campo deve começar com esta string. Para um campo Text, pelo menos um token deve começar com esta string. A própria string de consulta não é tokenizada.

weight (opcional)

float

Peso de relevância da condição de consulta. O valor deve ser um número de ponto flutuante positivo. Um valor maior aumenta a contribuição da condição de consulta na pontuação de relevância BM25. Este parâmetro não afeta a correspondência nem o número de linhas retornadas. Ele influencia a ordem dos resultados apenas quando ScoreSort é usado para classificar pela pontuação de relevância. Valor padrão: 1.0.

Colunas retornadas

request.columnsToGet é um objeto SearchRequest.ColumnsToGet que contém os seguintes parâmetros.

Nome

Tipo

Descrição

columns (opcional)

List<String>

Colunas de atributo a serem retornadas. Defina este parâmetro somente se returnAll e returnAllFromIndex forem ambos false. Se você omitir este parâmetro, apenas as colunas de chave primária serão retornadas.

returnAll (opcional)

boolean

Especifica se todas as colunas de atributo da tabela devem ser retornadas. Valor padrão: false.

returnAllFromIndex (opcional)

boolean

Especifica se todas as colunas de atributo indexadas devem ser retornadas. Valor padrão: false. Este parâmetro e returnAll não podem ser ambos true.

Valores de retorno

search retorna um objeto SearchResponse. A tabela a seguir descreve os campos principais.

Nome

Tipo

Descrição

totalCount

long

Quantidade de linhas correspondentes. Chame getTotalCount() para obter o valor. O valor retornado depende da configuração trackTotalCount.

rows

List<Row>

Linhas retornadas por esta consulta. Chame getRows() para obter o valor. O número de linhas não excede limit.

searchHits

List<SearchHit>

Resultados da consulta. Chame getSearchHits() para obter o valor. Se highlight estiver configurado, este campo conterá os dados da linha, além dos resultados de resumo e destaque.

nextToken

byte[]

Token da próxima página. Chame getNextToken() para obter o valor. Se o valor não for null, defina-o como token na próxima solicitação para continuar a leitura das linhas.

isAllSuccess

boolean

Indica se todas as partições do índice foram consultadas com sucesso. Chame isAllSuccess() para obter o valor. Se o valor for false, a resposta conterá resultados parciais e totalCount poderá ser inferior ao número real de linhas correspondentes.