Neste guia, crie e gerencie índices de pesquisa com o Tablestore CLI para consultar dados por colunas que não são de chave primária e combinar várias condições.
Pré-requisitos
O Tablestore CLI com credenciais de acesso configuradas. Para mais informações, consulte Tablestore CLI.
Uma tabela de dados. Para mais informações, consulte Data table operations.
Crie um índice de pesquisa
create_search_index -n <indexName>
|
Parâmetro |
Obrigatório |
Descrição |
|
-i, --input |
Não |
O caminho para um arquivo JSON que define o schema do índice de pesquisa. Caso não especifique, o CLI usa entrada interativa. |
|
-n, --name |
Sim |
O nome do índice de pesquisa. |
|
-t, --table |
Não |
O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando |
|
--ttl |
Não |
O tempo de vida (TTL) dos dados, que especifica por quanto tempo os dados são retidos. Unidade: segundos. Valor padrão: -1 (os dados nunca expiram). Valor mínimo: 86400 (um dia). Os dados que excedem o TTL são excluídos automaticamente. Importante
Para usar o recurso Lifecycle management do índice de pesquisa, desative a operação UpdateRow na tabela de dados. O TTL do índice de pesquisa e o TTL da tabela de dados são independentes. O TTL do índice de pesquisa deve ser menor ou igual ao TTL da tabela de dados. |
Quando solicitado, insira o schema do índice no formato JSON ou use o parâmetro -i e especifique um arquivo de schema. O schema 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 |
Uma 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): O 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 Sorting and paging.
|
Exemplos
Crie um índice de pesquisa chamado search_index.
create_search_index -n search_index
Insira o schema 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 pesquisa a partir de um arquivo:
create_search_index -n search_index -i /tmp/indexschema.json
Liste índices de pesquisa
list_search_index
|
Parâmetro |
Obrigatório |
Descrição |
|
-a, --all |
Não |
Lista índices de pesquisa para todas as tabelas de dados. |
|
-d, --detail |
Não |
Exibe informações detalhadas sobre os índices de pesquisa. |
|
-t, --table |
Não |
O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando |
Exemplos
Liste os índices de pesquisa da tabela de dados atual com detalhes.
list_search_index -d
Visualize detalhes do índice de pesquisa
describe_search_index -n <indexName>
|
Parâmetro |
Obrigatório |
Descrição |
|
-n, --name |
Sim |
O nome do índice de pesquisa. |
|
-o, --output |
Não |
Com este parâmetro, salve a saída em um arquivo .json ou TXT local. |
|
-t, --table |
Não |
O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando |
Exemplos
Agora, visualize os detalhes do índice search_index.
describe_search_index -n search_index
O campo Index schema na saída contém o schema do índice de pesquisa. TimeToLive mostra o TTL do índice de pesquisa.
Consulte dados com um índice de pesquisa
O Tablestore CLI suporta os seguintes tipos de consulta de índice de pesquisa: Term query, Terms query, Match all query, Match query, Match phrase query, Prefix query, Range query, Wildcard query, Token-based wildcard query, Boolean query, Geo query e Exists query. Selecione um tipo de consulta que se adeque ao seu caso de uso.
search -n <indexName> --return_all_indexed
|
Parâmetro |
Obrigatório |
Descrição |
|
-c, --column |
Não |
As colunas a serem retornadas. Separe vários nomes de coluna com vírgulas (,). |
|
-n, --name |
Sim |
O nome do índice de pesquisa. |
|
-f, --print_format |
Não |
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 pesquisa. |
|
-t, --table |
Não |
O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver 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 |
A posição a partir da qual começar a retornar os resultados. |
|
Limit |
Não |
O número máximo de linhas a serem retornadas. Para obter apenas a contagem de linhas sem retornar dados, defina Limit como 0. |
|
Collapse |
Não |
A configuração de colapso. Use este parâmetro para Collapse (remove duplicates) o conjunto de resultados por uma coluna específica. FieldName especifica o nome da coluna. Apenas colunas de número inteiro, ponto flutuante e Keyword são suportadas. |
|
Sort |
Não |
A ordem de classificação dos resultados. Para mais informações, consulte Define at query time. Se não for definido, os resultados são retornados na ordem de pré-classificação. Se nenhuma ordem de pré-classificação estiver definida, os resultados são retornados na ordem de chave primária. |
|
GetTotalCount |
Não |
Especifica se o número total de linhas correspondentes deve ser retornado. Valor padrão: false. Cuidado: ative esta opção apenas se necessário, pois pode aumentar a latência da consulta. |
|
Token |
Não |
Um 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 |
O tipo de consulta. Tipos suportados: MatchAllQuery, MatchQuery, MatchPhraseQuery, TermQuery, TermsQuery, PrefixQuery, RangeQuery, WildcardQuery, ExistsQuery, NestedQuery, KnnVectorQuery e BoolQuery. |
|
Aggregations |
Não |
A configuração de Aggregation. 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 a seguir 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"
}
}]
}
Exclua um índice de pesquisa
drop_search_index -n <indexName> -y
|
Parâmetro |
Obrigatório |
Descrição |
|
-n, --name |
Sim |
O nome do índice de pesquisa. |
|
-t, --table |
Não |
O nome da tabela de dados. Não é obrigatório se uma tabela de dados já estiver selecionada com o comando |
|
-y, --yes |
Sim |
Confirme a exclusão. Este parâmetro é obrigatório no comando. |
Exemplos
Agora, exclua o índice search_index.
drop_search_index -n search_index -y