Use a consulta de prefixo para buscar dados correspondentes a um prefixo especificado. Se a coluna usada na condição de prefixo for do tipo TEXT, o sistema a tokeniza. Uma linha atende aos critérios da consulta quando pelo menos um token contém o prefixo definido.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar um cliente Tablestore.
Tabela de dados criada e preenchida. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Índice de busca criado para a tabela de dados. Para mais informações, consulte Criar um índice de busca.
Parâmetros
|
Parâmetro |
Descrição |
|
field_name |
Nome da coluna a consultar. |
|
prefix |
Prefixo a corresponder. Se a coluna for do tipo TEXT, o sistema a tokeniza primeiro. A linha corresponde à consulta se pelo menos um token contiver o prefixo especificado. |
|
query |
Tipo da consulta. Defina este parâmetro como |
|
table_name |
Nome da tabela de dados. |
|
index_name |
Nome do índice de busca. |
|
limit |
Número máximo de linhas a retornar em uma única consulta. Para contar as linhas correspondentes sem recuperar dados, defina este parâmetro como |
|
get_total_count |
Indica se o sistema deve retornar o número total de linhas que atendem às condições da consulta. Valor padrão: Definir este parâmetro como |
|
columns_to_get |
Controla quais colunas retornar para cada linha correspondente. Configure este parâmetro com os campos
|
Exemplos
Os exemplos a seguir mostram como consultar linhas cujo valor na coluna Col_Keyword começa com tablestore.
-
Executar consulta de prefixo com o Tablestore SDK for Python V5.2.1 ou posterior
O Tablestore SDK for Python V5.2.1 e versões posteriores retornam um objeto
SearchResponsepor padrão. O código a seguir mostra um exemplo de solicitação:query = PrefixQuery('Col_Keyword', 'tablestore') search_response = client.search( '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', SearchQuery(query, limit=100, get_total_count=True), ColumnsToGet(return_type=ColumnReturnType.ALL) ) print('request_id : %s' % search_response.request_id) print('is_all_succeed : %s' % search_response.is_all_succeed) print('total_count : %s' % search_response.total_count) print('rows : %s' % search_response.rows) # # If deep paging is required, use next_token to avoid limits on paging depth. # all_rows = [] # next_token = None # # first round # search_response = client.search( # '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', # SearchQuery(query, next_token=next_token, limit=100, get_total_count=True), # columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL)) # all_rows.extend(search_response.rows) # # # loop # while search_response.next_token: # search_response = client.search( # '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', # SearchQuery(query, next_token=search_response.next_token, limit=100, get_total_count=True), # columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL)) # all_rows.extend(search_response.rows) # print('Total rows:%s' % len(all_rows))Para retornar os resultados como tupla, chame
.v1_response()no resultado:query = PrefixQuery('Col_Keyword', 'tablestore') rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search( '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', SearchQuery(query, limit=100, get_total_count=True), ColumnsToGet(return_type=ColumnReturnType.ALL) ).v1_response() -
Executar consulta de prefixo com versão do Tablestore SDK for Python anterior à 5.2.1
Versões do Tablestore SDK for Python anteriores à V5.2.1 retornam resultados como tupla por padrão. O código a seguir mostra um exemplo de solicitação:
query = PrefixQuery('Col_Keyword', 'tablestore') rows, next_token, total_count, is_all_succeed = client.search( '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', SearchQuery(query, limit=100, get_total_count=True), ColumnsToGet(return_type=ColumnReturnType.ALL) )
FAQ
Referências
-
Ao usar um índice de busca para consultar dados, utilize os seguintes métodos: consulta de termo, consulta de termos, consulta match all, consulta match, consulta match phrase, consulta de prefixo, consulta de intervalo, consulta wildcard, consulta geográfica, consulta booleana, consulta de vetor KNN, consulta aninhada e consulta exists. Use esses métodos do índice de busca para consultar dados multidimensionais conforme suas necessidades de negócio.
Ordene ou pagine as linhas que atendem às condições da consulta usando os recursos de ordenação e paginação. Para mais informações, consulte Ordenação e paginação.
Use o recurso collapse (distinct) para agrupar o conjunto de resultados com base em uma coluna específica. Assim, os dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (distinct).
Para analisar dados em uma tabela, use o recurso de agregação da operação Search ou execute instruções SQL. Por exemplo, obtenha valores mínimos e máximos, soma e número total de linhas. Para mais informações, consulte Agregação e Consulta SQL.
Para obter todas as linhas que atendem às condições da consulta sem ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.