Crie e gerencie índices de busca com o Tablestore CLI para consultar dados por colunas que não sejam de chave primária e combinar várias condições.
Pré-requisitos
Tablestore CLI configurado com credenciais de acesso. Para mais informações, consulte Tablestore CLI.
Tabela de dados criada. Para mais informações, consulte Operações de tabela de dados.
Criar um índice de busca
create_search_index -n <indexName>
|
Parâmetro |
Obrigatório |
Descrição |
|
-i, --input |
Não |
Caminho para um arquivo JSON que define o esquema do índice de busca. Caso não seja especificado, a CLI usa entrada interativa. |
|
-n, --name |
Sim |
Nome do índice de busca. |
|
-t, --table |
Não |
Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando |
|
--ttl |
Não |
Tempo de vida (TTL) dos dados, que define o período de retenção. Unidade: segundos. Valor padrão: -1 (os dados nunca expiram). Valor mínimo: 86400 (um dia). O sistema exclui automaticamente os dados que excedem o TTL. Importante
Para usar o recurso de Gerenciamento de ciclo de vida do índice de busca, desative a operação UpdateRow na tabela de dados. O TTL do índice de busca e o TTL da tabela de dados são independentes. O TTL do índice de busca deve ser menor ou igual ao TTL da tabela de dados. |
Quando solicitado, insira o esquema do índice no formato JSON ou use o parâmetro -i para especificar um arquivo de esquema. O esquema contém as seguintes configurações:
|
Parâmetro |
Obrigatório |
Descrição |
|
IndexSetting |
Não |
Configurações do índice, incluindo RoutingFields. RoutingFields (opcional): Campos de roteamento personalizados. Selecione colunas de chave primária como campos de roteamento. Dados com os mesmos valores de campo de roteamento são distribuídos para a mesma partição durante leituras e gravações, o que melhora o desempenho da consulta. Normalmente, defina apenas um campo de roteamento. Se você definir vários campos de roteamento, o Tablestore concatena os valores em um só. |
|
FieldSchemas |
Sim |
Lista de objetos FieldSchema. Cada FieldSchema contém os seguintes campos:
|
|
IndexSort |
Não |
Configurações de pré-ordenação do índice. Padrão: ordenado por chave primária. Importante
Índices que contêm campos Nested não suportam IndexSort e não podem ser pré-ordenados. Sorters (opcional): Método de pré-ordenação. Suporta ordenação por chave primária (PrimaryKeySort) e por valor de campo (FieldSort). Para mais informações, consulte Ordenação e paginação.
|
Exemplos
Crie um índice de busca chamado search_index.
create_search_index -n search_index
Insira o esquema do índice conforme solicitado. Exemplo:
{
"IndexSetting": {
"RoutingFields": null
},
"FieldSchemas": [
{
"FieldName": "gid",
"FieldType": "LONG",
"Index": true,
"EnableSortAndAgg": true,
"Store": true,
"IsArray": false,
"IsVirtualField": false
},
{
"FieldName": "col3",
"FieldType": "TEXT",
"Index": true,
"Analyzer": "single_word",
"AnalyzerParameter": {
"CaseSensitive": true,
"DelimitWord": null
},
"EnableSortAndAgg": false,
"Store": true,
"IsArray": false,
"IsVirtualField": false
}
],
"IndexSort": {
"Sorters": [
{
"Name": "PrimaryKeySort",
"Sorter": {
"Order": "ASC"
}
}
]
}
}
Crie um índice de busca a partir de um arquivo:
create_search_index -n search_index -i /tmp/indexschema.json
Listar índices de busca
list_search_index
|
Parâmetro |
Obrigatório |
Descrição |
|
-a, --all |
Não |
Lista índices de busca de todas as tabelas de dados. |
|
-d, --detail |
Não |
Exibe informações detalhadas sobre os índices de busca. |
|
-t, --table |
Não |
Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando |
Exemplos
Liste os índices de busca da tabela de dados atual com detalhes.
list_search_index -d
Visualizar detalhes do índice de busca
describe_search_index -n <indexName>
|
Parâmetro |
Obrigatório |
Descrição |
|
-n, --name |
Sim |
Nome do índice de busca. |
|
-o, --output |
Não |
Salva a saída em um arquivo JSON ou TXT local. |
|
-t, --table |
Não |
Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando |
Exemplos
Visualize os detalhes do índice search_index.
describe_search_index -n search_index
O campo Index schema na saída contém o esquema do índice de busca. TimeToLive mostra o TTL do índice de busca.
Consultar dados com um índice de busca
O Tablestore CLI suporta os seguintes tipos de consulta de índice de busca: Consulta Term, Consulta Terms, Consulta Match all, Consulta Match, Consulta Match phrase, Consulta Prefix, Consulta Range, Consulta Wildcard, Consulta Wildcard baseada em token, Consulta Boolean, Consulta Geo e Consulta Exists. Escolha o tipo de consulta adequado ao seu caso de uso.
search -n <indexName> --return_all_indexed
|
Parâmetro |
Obrigatório |
Descrição |
|
-c, --column |
Não |
Colunas a retornar. Separe vários nomes de coluna com vírgulas (,). |
|
-n, --name |
Sim |
Nome do índice de busca. |
|
-f, --print_format |
Não |
Formato de saída. Valor padrão: table. |
|
--return_all |
Não |
Retorna todas as colunas. |
|
--return_all_indexed |
Não |
Retorna todas as colunas indexadas no índice de busca. |
|
-t, --table |
Não |
Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando |
Quando solicitado, insira as condições de consulta no formato JSON. As condições de consulta contêm as seguintes configurações:
|
Parâmetro |
Obrigatório |
Descrição |
|
Offset |
Não |
Posição inicial para retorno dos resultados. |
|
Limit |
Não |
Número máximo de linhas a retornar. Para obter apenas a contagem de linhas sem retornar dados, defina Limit como 0. |
|
Collapse |
Não |
Configuração de agrupamento. Use este parâmetro para Agrupar (remover duplicatas) o conjunto de resultados por uma coluna específica. FieldName especifica o nome da coluna. Há suporte apenas para colunas inteiras, de ponto flutuante e Keyword. |
|
Sort |
Não |
Ordem de classificação dos resultados. Para mais informações, consulte Definir no momento da consulta. Se não for definido, os resultados retornam na ordem de pré-classificação. Caso nenhuma ordem de pré-classificação esteja definida, os resultados retornam na ordem de chave primária. |
|
GetTotalCount |
Não |
Define se o número total de linhas correspondentes deve ser retornado. Valor padrão: false. Ativar esta opção pode aumentar a latência da consulta. |
|
Token |
Não |
Token de paginação para ler os resultados restantes. Quando uma resposta não contém todas as linhas correspondentes, o servidor retorna um Token. Passe este Token na próxima solicitação para continuar a leitura. Defina Token como null na primeira solicitação. |
|
Query |
Sim |
Tipo de consulta. Tipos suportados: MatchAllQuery, MatchQuery, MatchPhraseQuery, TermQuery, TermsQuery, PrefixQuery, RangeQuery, WildcardQuery, ExistsQuery, NestedQuery, KnnVectorQuery e BoolQuery. |
|
Aggregations |
Não |
Configuração de Agregação. Suporta operações de valor mínimo, valor máximo, soma, média, contagem e contagem distinta.
|
Exemplos
Consulte dados na tabela atual com search_index e retorne todas as colunas indexadas.
search -n search_index --return_all_indexed
Insira as condições de consulta conforme solicitado. O exemplo abaixo consulta linhas onde uid é igual a 10001 e calcula a média da coluna pid:
{
"Offset": -1,
"Limit": 10,
"Collapse": null,
"Sort": null,
"GetTotalCount": true,
"Token": null,
"Query": {
"Name": "TermQuery",
"Query": {
"FieldName": "uid",
"Term": 10001
}
},
"Aggregations": [{
"Name": "avg",
"Aggregation": {
"AggName": "agg1",
"Field": "pid"
}
}]
}
Excluir um índice de busca
drop_search_index -n <indexName> -y
|
Parâmetro |
Obrigatório |
Descrição |
|
-n, --name |
Sim |
Nome do índice de busca. |
|
-t, --table |
Não |
Nome da tabela de dados. Dispensável se já houver uma tabela de dados selecionada com o comando |
|
-y, --yes |
Sim |
Confirma a exclusão. Este parâmetro é obrigatório no comando. |
Exemplos
Exclua o índice search_index.
drop_search_index -n search_index -y