Use a consulta de termo para localizar linhas cujos valores de campo correspondam exatamente a uma palavra-chave especificada. Para campos TEXT, o Tablestore tokeniza o valor do campo e compara cada token com a palavra-chave. Se algum token corresponder, o sistema retornará a linha. A palavra-chave em si não é tokenizada.
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 pesquisa criado para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
Parâmetros
|
Parâmetro |
Descrição |
|
query_type |
Tipo da consulta. Defina como TermQuery. |
|
field_name |
Nome do campo a consultar. |
|
term |
Palavra-chave para comparar com os valores do campo. O sistema não tokeniza a palavra-chave; ele a compara como um todo. Em campos TEXT, o Tablestore tokeniza o valor do campo e verifica cada token em relação à palavra-chave. O sistema retorna a linha se qualquer token corresponder exatamente. Por exemplo, se um campo TEXT contiver "tablestore is cool", o valor será tokenizado em "tablestore", "is" e "cool". Consultar por "tablestore", "is" ou "cool" retorna a linha. |
|
table_name |
Nome da tabela de dados. |
|
index_name |
Nome do índice de pesquisa. |
|
limit |
Número máximo de linhas a retornar. Defina como 0 para obter apenas a contagem de linhas, sem retornar os dados. |
|
get_total_count |
Define se o sistema deve retornar o número total de linhas correspondentes. Padrão: false. Definir este parâmetro como true reduz o desempenho da consulta. |
|
columns_to_get |
Colunas a retornar para cada linha correspondente. Configure return_type e column_names conforme necessário.
|
Exemplos
Os exemplos a seguir consultam linhas em que o campo Col_Keyword corresponde exatamente a "tablestore".
-
Tablestore SDK for Python V5.2.1 ou posterior
O SDK for Python V5.2.1 e versões posteriores retorna um objeto SearchResponse por padrão. O exemplo a seguir mostra uma consulta de termo básica:
query = TermQuery('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) # For deep pagination, use next_token — it has no limit on pagination 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 obter os resultados como uma tupla, chame
.v1_response():query = TermQuery('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() -
Tablestore SDK for Python anterior à versão 5.2.1
Versões do SDK for Python anteriores à 5.2.1 retornam resultados como uma tupla por padrão:
query = TermQuery('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) )
Perguntas frequentes
Referências
-
Ao usar um índice de pesquisa 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 curinga, consulta geográfica, consulta booleana, consulta de vetor KNN, consulta aninhada e consulta exists. Use esses métodos fornecidos pelo índice de pesquisa para consultar dados de múltiplas dimensões conforme os requisitos do seu negócio.
Ordene ou pagine as linhas que atendem às condições da consulta usando os recursos de classificação e paginação. Para mais informações, consulte Classificação e paginação.
Use o recurso de colapso (distinto) 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 Colapso (distinto).
Para analisar dados em uma tabela de dados, utilize o recurso de agregação da operação Search ou execute instruções SQL. Por exemplo, obtenha os valores mínimo e máximo, 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 de consulta sem precisar ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.