Use o Tablestore SDK for Python para corresponder a valores de campo ou tokens que comecem com uma string especificada.
Pré-requisitos
Instale o Tablestore SDK for Python e inicialize o cliente.
Descrição
Uma consulta de prefixo corresponde a valores de campo ou tokens que começam com a string de consulta. Para um campo Keyword, o valor completo do campo deve começar com a string de consulta. Para um campo Text, uma linha é considerada correspondente se um dos tokens começar com a string de consulta. O sistema não tokeniza a string de consulta. A correspondência faz distinção entre maiúsculas e minúsculas. Ao chamar o método search, defina o tipo de consulta como PrefixQuery. Para obter informações sobre os tipos de campo, consulte String types.
PrefixQuery(field_name, prefix, weight=None)
O exemplo a seguir consulta linhas nas quais o campo category começa com book- e retorna até 10 linhas, além do número total de linhas correspondentes.
query = PrefixQuery("category", "book-")
search_query = SearchQuery(
query,
limit=10,
get_total_count=True,
)
response = client.search(
"example_table",
"example_index",
search_query,
ColumnsToGet(return_type=ColumnReturnType.ALL),
)
print(response.total_count)
for row in response.rows:
print(row)
Parâmetros
Solicitação de pesquisa
O método search contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
table_name (obrigatório) |
|
O nome da tabela de dados. |
|
index_name (obrigatório) |
|
O nome do índice de pesquisa. |
|
search_query (obrigatório) |
|
As condições de consulta e as configurações gerais de consulta. |
|
columns_to_get (opcional) |
|
A configuração das colunas de retorno. Se você não especificar este parâmetro, o sistema retornará apenas as colunas de chave primária. |
|
routing_keys (opcional) |
|
A lista de valores de chave primária para campos de roteamento personalizado. Não especifique este parâmetro se não houver configuração de roteamento personalizado. |
|
timeout_s (opcional) |
|
O tempo limite da solicitação em segundos. Se você não especificar este parâmetro, o sistema aplica o tempo limite no nível do cliente. |
Configuração de consulta
search_query é do tipo SearchQuery e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
query (obrigatório) |
|
A condição de consulta. Defina este parâmetro como |
|
sort (opcional) |
|
A ordem de classificação dos resultados da consulta. Para obter mais informações, consulte Sort and paginate results. |
|
get_total_count (opcional) |
|
Defina se a consulta retorna o número total de linhas correspondentes. Valor padrão: |
|
next_token (opcional) |
|
O token de paginação. Defina este parâmetro como |
|
offset (opcional) |
|
O deslocamento inicial da consulta atual. Use este parâmetro para paginação superficial. |
|
limit (opcional) |
|
O número máximo de linhas a retornar. Caso defina este parâmetro como |
|
aggs (opcional) |
|
As configurações de agregação. Para obter mais informações, consulte Aggregation. |
|
group_bys (opcional) |
|
As configurações de agrupamento. Para obter mais informações, consulte Aggregation. |
|
collapse_field (opcional) |
|
A configuração de colapso de resultados, que remove resultados duplicados com base em um campo especificado. Para obter mais informações, consulte Collapse query results. |
|
highlight (opcional) |
|
A configuração de resumo e destaque para campos |
Condição de consulta
search_query.query é do tipo PrefixQuery e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
field_name (obrigatório) |
|
O nome do campo |
|
prefix (obrigatório) |
|
A string de consulta. Para um campo |
|
weight (opcional) |
|
O peso de relevância da condição de consulta. O valor deve ser um número de ponto flutuante positivo. Este parâmetro não afeta a correspondência nem o número de linhas retornadas. Isso afeta a ordem apenas quando os resultados são classificados por pontuação de relevância. Valor padrão: |
Colunas de retorno
columns_to_get é do tipo ColumnsToGet e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
column_names (opcional) |
|
Os nomes das colunas de atributo a retornar. Especifique este parâmetro apenas quando |
|
return_type (opcional) |
|
O modo de coluna de retorno. |
Resposta
O método search retorna SearchResponse. A tabela a seguir descreve os campos principais.
|
Campo |
Tipo |
Descrição |
|
rows |
|
As linhas que a consulta atual retorna. O número de linhas não excede |
|
next_token |
|
O token para a próxima página. Se este campo não estiver vazio, passe-o para a próxima solicitação e continue a leitura. |
|
total_count |
|
O número de linhas correspondentes. O valor depende da configuração |
|
is_all_succeed |
|
Indica se a consulta atingiu todas as partições de índice. Se o valor for |
|
agg_results |
|
Os resultados da agregação. Este campo fica vazio se |
|
group_by_results |
|
Os resultados do agrupamento. Este campo fica vazio se |
|
search_hits |
|
Os acertos da pesquisa, que incluem informações estendidas, como pontuações de relevância, destaques e linhas filhas correspondentes. |
Resposta compatível com tupla
A partir do Tablestore SDK for Python 5.2.0, as APIs de pesquisa retornam objetos de resposta em vez de tuplas. A versão 5.1.0 e as versões anteriores retornam tuplas diretamente. Nas versões 5.2.1 e posteriores, chame SearchResponse.v1_response() para obter uma tupla compatível com versões anteriores. Em códigos novos, acesse os atributos de SearchResponse diretamente para evitar erros de desempacotamento caso os campos de resposta sejam estendidos.
(
rows,
next_token,
total_count,
is_all_succeed,
agg_results,
group_by_results,
search_hits,
) = response.v1_response()