Use uma consulta por prefixo no Tablestore Go SDK para localizar valores que comecem com um prefixo especificado.
Pré-requisitos
Instale o Tablestore Go SDK e inicialize o cliente.
Descrição
Uma consulta por prefixo corresponde a valores que começam com o prefixo especificado. Para um campo Text, a consulta se aplica aos termos tokenizados em vez da string original completa. A correspondência diferencia maiúsculas de minúsculas.
func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)
O exemplo a seguir consulta dados e retorna até 10 linhas, além do número total de linhas correspondentes.
tableName := "example_table"
indexName := "example_index"
query := &search.PrefixQuery{FieldName: "category", Prefix: "book-"}
searchQuery := search.NewSearchQuery().
SetQuery(query).
SetLimit(10).
SetGetTotalCount(true)
response, err := client.Search(&tablestore.SearchRequest{
TableName: tableName,
IndexName: indexName,
SearchQuery: searchQuery,
ColumnsToGet: &tablestore.ColumnsToGet{
ReturnAllFromIndex: true,
},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(response.TotalCount)
fmt.Println(response.Rows)
Parâmetros
Solicitação de consulta
request é do tipo tablestore.SearchRequest e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
TableName (obrigatório) |
string |
O nome da tabela de dados. |
|
IndexName (obrigatório) |
string |
O nome do índice de pesquisa. |
|
SearchQuery (obrigatório) |
search.SearchQuery |
A condição de consulta e as configurações comuns de consulta. |
|
ColumnsToGet (opcional) |
*tablestore.ColumnsToGet |
A configuração das colunas de retorno. Se você omitir este parâmetro, o sistema retornará apenas as colunas de chave primária. |
|
RoutingValues (opcional) |
[]*tablestore.PrimaryKey |
Valores de chave primária para campos de roteamento personalizado. Omita este parâmetro se o roteamento personalizado não estiver configurado. |
|
TimeoutMs (opcional) |
*int32 |
O tempo limite da solicitação em milissegundos. |
Configuração de consulta
Crie uma configuração de consulta chamando search.NewSearchQuery() e configure-a usando os métodos a seguir.
|
Nome |
Tipo |
Descrição |
|
SetQuery (obrigatório) |
search.Query |
Especifique a condição de consulta. |
|
SetOffset (opcional) |
int32 |
Defina a posição inicial. Valor padrão: 0. Para paginação baseada em offset, a soma de Offset + Limit não pode exceder 100.000. |
|
SetLimit (opcional) |
int32 |
Defina o número máximo de linhas a serem retornadas. Valor padrão: 10. Valor máximo: 100. O valor 0 não retorna nenhuma linha. |
|
SetHighlight (opcional) |
*search.Highlight |
Configure resumos e realce para campos Text. Para mais informações, acesse Summary and highlighting. |
|
SetCollapse (opcional) |
*search.Collapse |
Agrupe os resultados da consulta. Para mais informações, acesse Collapse query results. |
|
SetSort (opcional) |
*search.Sort |
Especifique a ordem de classificação dos resultados. Para mais informações, acesse Sort and paginate results. |
|
SetGetTotalCount (opcional) |
bool |
Defina se o sistema deve contar todas as linhas correspondentes. Valor padrão: false. |
|
SetToken (opcional) |
[]byte |
Especifique o valor NextToken retornado pela resposta anterior. Este método limpa o Sort porque o token contém as condições de classificação da página anterior. Não especifique Offset ao usar a paginação baseada em token. |
|
SetSearchFilter (opcional) |
*search.SearchFilter |
Aplique um filtro pós-consulta. Para mais informações, acesse Use post-query filters. |
|
Aggregation (opcional) |
...search.Aggregation |
Configure agregações. Para mais informações, acesse Aggregation. |
|
GroupBy (opcional) |
...search.GroupBy |
Configure agrupamentos. Para mais informações, acesse Aggregation. |
Condição de consulta
A consulta é do tipo search.PrefixQuery e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
FieldName (obrigatório) |
string |
O nome do campo de índice a ser consultado. |
|
Prefix (obrigatório) |
string |
O prefixo a ser correspondido. |
Colunas a serem retornadas
request.ColumnsToGet é do tipo tablestore.ColumnsToGet e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
Columns (opcional) |
[]string |
As colunas de atributo a serem retornadas. Este parâmetro só tem efeito quando ReturnAll e ReturnAllFromIndex forem ambos false. |
|
ReturnAll (opcional) |
bool |
Defina se o sistema deve retornar todas as colunas de atributo na tabela de dados. Valor padrão: false. |
|
ReturnAllFromIndex (opcional) |
bool |
Defina se o sistema deve retornar todas as colunas de atributo indexadas. Valor padrão: false. Não defina este parâmetro e ReturnAll como true simultaneamente. |
Resposta
O método Search retorna um valor tablestore.SearchResponse. A tabela a seguir descreve os principais campos de negócio.
|
Nome |
Tipo |
Descrição |
|
TotalCount |
int64 |
O número total de linhas correspondentes. O valor depende de SetGetTotalCount. |
|
Rows |
[]*tablestore.Row |
As linhas retornadas pela consulta atual. A quantidade não excede o valor definido por SetLimit. |
|
SearchHits |
[]*tablestore.SearchHit |
Os acertos da pesquisa. Leia este campo ao usar realce, inner hits aninhados ou pontuações de relevância. |
|
NextToken |
[]byte |
O token para a próxima página. Se o valor não estiver vazio, passe-o para a próxima consulta. |
|
IsAllSuccess |
bool |
Indica se o sistema consultou todas as partições do índice. Se o valor for false, o sistema retornará resultados parciais e o TotalCount poderá ser menor que o número real de linhas correspondentes. |
|
AggregationResults |
search.AggregationResults |
Os resultados da agregação. |
|
GroupByResults |
search.GroupByResults |
Os resultados do agrupamento. |