

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: Criação e pesquisa de documentos no Amazon OpenSearch Service
<a name="quick-start"></a>

Neste tutorial, você aprende a criar e pesquisar um documento no Amazon OpenSearch Service. Você adiciona dados a um índice na forma de um documento JSON. OpenSearch O serviço cria um índice em torno do primeiro documento que você adiciona.

Este tutorial explica como fazer solicitações HTTP para criar documentos, gerar automaticamente um ID para um documento e realizar pesquisas básicas e avançadas em seus documentos.

**nota**  
Este tutorial usa um domínio com acesso aberto. Para obter o mais alto nível de segurança, recomendamos colocar o domínio em uma nuvem privada virtual (VPC).

## Pré-requisitos
<a name="quick-start-prereqs"></a>

Este tutorial tem os seguintes pré-requisitos:
+ Você deve ter um Conta da AWS.
+ Você deve ter um domínio OpenSearch de serviço ativo.

## Adicionar um documento a um índice
<a name="quick-start-create"></a>

Para adicionar um documento a um índice, você pode usar qualquer ferramenta HTTP, como [Postman](https://www.getpostman.com/), cURL ou OpenSearch o console Dashboards. Esses exemplos pressupõem que você esteja usando o console do desenvolvedor em OpenSearch painéis. Se você estiver usando uma ferramenta diferente, ajuste adequadamente fornecendo o URL completo e as credenciais, se necessário.

**Para adicionar um documento a um índice**

1. Navegue até o URL dos OpenSearch painéis do seu domínio. Você pode encontrar o URL no painel do domínio no console OpenSearch de serviço. O URL segue este formato:

   ```
   domain-endpoint/_dashboards/
   ```

1. Faça login usando o nome de usuário principal e a senha.

1. Abra o painel de navegação esquerdo e escolha **Ferramentas de desenvolvimento**.

1. O verbo HTTP para criar um novo recurso é PUT. É ele que deve ser usado para criar um novo documento e um índice. Insira o seguinte comando no console:

   ```
   PUT fruit/_doc/1
   {
     "name":"strawberry",
     "color":"red"
   }
   ```

   A solicitação `PUT` cria um índice chamado *fruit* e adiciona um único documento ao índice com um ID de 1. Ele produz a seguinte resposta:

   ```
   {
     "_index" : "fruit",
     "_type" : "_doc",
     "_id" : "1",
     "_version" : 1,
     "result" : "created",
     "_shards" : {
       "total" : 2,
       "successful" : 2,
       "failed" : 0
     },
     "_seq_no" : 0,
     "_primary_term" : 1
   }
   ```

## Criação gerada automaticamente IDs
<a name="quick-start-id"></a>

OpenSearch O serviço pode gerar automaticamente uma identificação para seus documentos. O comando a ser gerado IDs usa uma solicitação POST em vez de uma solicitação PUT e não requer ID de documento (em comparação com a solicitação anterior). 

Insira a seguinte solicitação no console do desenvolvedor:

```
POST veggies/_doc
{
  "name":"beet",
  "color":"red",
  "classification":"root"
}
```

Essa solicitação cria um índice chamado *veggies* e adiciona o documento ao índice. Ele produz a seguinte resposta:

```
{
  "_index" : "veggies",
  "_type" : "_doc",
  "_id" : "3WgyS4IB5DLqbRIvLxtF",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}
```

Observe o campo adicional `_id` na resposta, que indica que um ID foi criado automaticamente.

**nota**  
Você não acrescenta nada depois de `_doc` no URL, onde o ID normalmente é adicionado. Como está criando um documento com um ID gerado, você ainda não fornece um. Isso está reservado para atualizações. 

## Atualizar um documento com um comando POST
<a name="quick-start-update"></a>

Para atualizar um documento, use um comando HTTP `POST` com o número do ID.

Primeiro, crie um documento com ID `42`:

```
POST fruits/_doc/42
{
  "name":"banana",
  "color":"yellow"
}
```

Em seguida, use esse ID para atualizar o documento:

```
POST fruits/_doc/42
{
  "name":"banana",
  "color":"yellow",
  "classification":"berries"
}
```

Esse comando atualiza o documento com o novo campo `classification`. Ele produz a seguinte resposta:

```
{
  "_index" : "fruits",
  "_type" : "_doc",
  "_id" : "42",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 1,
  "_primary_term" : 1
}
```

**nota**  
Se você tentar atualizar um documento que não existe, o OpenSearch Service cria o documento.

## Executar ações em massa
<a name="quick-start-bulk"></a>

Você pode usar a operação da API `POST _bulk` para executar várias ações em um ou mais índices em uma solicitação. Os comandos de ação em massa têm o seguinte formato:

```
POST /_bulk
<action_meta>\n
<action_data>\n
<action_meta>\n
<action_data>\n
```

Cada ação requer duas linhas de JSON. Primeiro, é necessário fornecer a descrição ou os metadados da ação. Na próxima linha, você deve fornecer os dados. Cada parte é separada por uma nova linha (\$1n). Uma descrição de ação de uma inserção pode ser semelhante a esta:

```
{ "create" : { "_index" : "veggies", "_type" : "_doc", "_id" : "7" } }
```

E a próxima linha contendo os dados pode ter a seguinte aparência:

```
{ "name":"kale", "color":"green", "classification":"leafy-green" }
```

Juntos, os metadados e os dados representam uma única ação em uma operação em massa. Você pode realizar várias operações em uma solicitação, como esta:

```
POST /_bulk
{ "create" : { "_index" : "veggies", "_id" : "35" } }
{ "name":"kale", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "36" } }
{ "name":"spinach", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "37" } }
{ "name":"arugula", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "38" } }
{ "name":"endive", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "39" } }
{ "name":"lettuce", "color":"green", "classification":"leafy-green" }
{ "delete" : { "_index" : "vegetables", "_id" : "1" } }
```

Observe que a última ação é `delete`. Não há dados seguindo a ação `delete`.

## Pesquisando documentos
<a name="quick-start-search"></a>

Agora que os dados existem no seu cluster, você pode procurá-los. Por exemplo, talvez você queira pesquisar todos os tubérculos ou obter uma contagem de todas as folhas verdes ou encontrar o número de erros registrados por hora.

**Pesquisas básicas**

Uma pesquisa básica é semelhante a esta:

```
GET veggies/_search?q=name:l*
```

A solicitação produz uma resposta JSON que contém o documento lettuce.

**Pesquisas avançadas**

É possível realizar pesquisas mais avançadas fornecendo as opções de consulta como JSON no corpo da solicitação:

```
GET veggies/_search
{
  "query": {
    "term": {
      "name": "lettuce"
    }
  }
}
```

Este exemplo também produz uma resposta JSON com o documento lettuce.

**Classificar**

É possível executar mais desse tipo de consulta usando a classificação. Primeiro, é necessário recriar o índice, porque o mapeamento automático de campo escolheu tipos que não podem ser classificados por padrão. Envie as seguintes solicitações para excluir e recriar o índice:

```
DELETE /veggies

PUT /veggies
{
   "mappings":{
      "properties":{
         "name":{
            "type":"keyword"
         },
         "color":{
            "type":"keyword"
         },
         "classification":{
            "type":"keyword"
         }
      }
   }
}
```

Em seguida, preencha novamente o índice com dados:

```
POST /_bulk
{ "create" : { "_index" : "veggies", "_id" : "7"  } }
{ "name":"kale", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "8" } }
{ "name":"spinach", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "9" } }
{ "name":"arugula", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "10" } }
{ "name":"endive", "color":"green", "classification":"leafy-green" }
{ "create" : { "_index" : "veggies", "_id" : "11" } }
{ "name":"lettuce", "color":"green", "classification":"leafy-green" }
```

Agora você pode pesquisar com uma classificação. Esta solicitação adiciona uma classificação crescente:

```
GET veggies/_search
{
  "query" : {
    "term": { "color": "green" }
  },
  "sort" : [
      "classification"
  ]
}
```

## Recursos relacionados
<a name="quick-start-resources"></a>

Para saber mais, consulte os seguintes recursos:
+ [Começando a usar o Amazon OpenSearch Service](gsg.md)
+ [Indexação de dados no Amazon Service OpenSearch](indexing.md)
+ [Pesquisando dados no Amazon OpenSearch Service](searching.md)