Uma consulta de termos retorna linhas cujo valor de coluna corresponde exatamente a pelo menos um dos termos especificados, equivalente ao operador SQL IN. Diferentemente da consulta de termo único, esta aceita múltiplos valores para correspondência.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar um cliente do Tablestore.
Tabela de dados criada e com dados gravados. 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 este parâmetro como |
|
field_name |
Nome da coluna a consultar. |
|
terms |
Lista de termos para comparar com o valor da coluna. O sistema retorna uma linha se o valor da coluna corresponder exatamente a pelo menos um termo da lista. |
|
table_name |
Nome da tabela de dados. |
|
index_name |
Nome do índice de pesquisa. |
|
limit |
Número máximo de linhas a retornar. 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. O valor padrão é Definir este parâmetro como |
|
columns_To_get |
Colunas a retornar para cada linha correspondente. Especifique
|
Exemplos
Os exemplos a seguir consultam linhas em que a coluna Col_Keyword corresponde exatamente a um destes valores: key000, key100, key888, key999, key908 ou key1000.
Nota: Definirget_total_countcomotruereduz o desempenho da consulta. Ative essa opção apenas quando precisar da contagem exata de correspondências.
-
SDK for Python V5.2.1 e posterior
O SDK for Python V5.2.1 e versões posteriores retorna um objeto
SearchResponsepor padrão.query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000']) 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 paging, use next_token — it has no limit on paging depth. # all_rows = [] # next_token = None # # First page # 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) # # # Subsequent pages # 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:
query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000']) 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() -
SDK for Python anterior à V5.2.1
Versões do SDK for Python anteriores à V5.2.1 retornam resultados como uma tupla por padrão.
query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000']) 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 do índice de pesquisa para consultar dados multidimensionais conforme suas necessidades de negócios.
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 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 de dados, 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 ordenação, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.