> ## Documentation Index
> Fetch the complete documentation index at: https://base39-release-notes-06-mar.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Pesquisa

> A sintaxe de pesquisa foi projetada para ser simples e intuitiva, permitindo que você realize buscas complexas com facilidade.

Esta documentação descreve a sintaxe de pesquisa que você pode usar para fazer consultas mais específicas em nossa plataforma.

## Elementos básicos

A sintaxe de pesquisa suporta os seguintes elementos:

* **Campos**: São as chaves ou propriedades que você deseja pesquisar. Por exemplo, `customer.name`, `status`, `createdAt`.
* **Valores**: São os valores correspondentes aos campos que você está pesquisando. Eles podem ser strings, números ou datas.
* **Operadores de Comparação**: São símbolos como `:`, `~`, `>=`, `<` que definem como o campo e o valor devem ser comparados.
* **Operadores Lógicos**: São palavras como `AND`, `OR` que permitem combinar várias condições.

## Operadores de comparação

* **`:`**: Igual a.
  * Exemplo: `status:open` buscará registros onde o `status` é igual a "open".
* **`~`**: Contém (case-insensitive).
  * Exemplo: `customer.name~"Bruno"` buscará nomes de clientes que contêm "Bruno", ignorando maiúsculas e minúsculas.
* **`>=`**: Maior ou igual a (usado principalmente para datas e números).
  * Exemplo: `createdAt>=2023-09-01` buscará registros criados em ou após 1º de setembro de 2023.
* **`<`**: Menor que (usado principalmente para datas e números).
  * Exemplo: `createdAt<2023-09-15` buscará registros criados antes de 15 de setembro de 2023.

## Operadores lógicos

* **`AND`**: Todos as condições devem ser verdadeiras.
  * Exemplo: `status:"open" AND customer.name~"Bruno"` buscará registros onde o `status` é "open" e o nome do cliente contém "Bruno".
* **`OR`**: Pelo menos uma das condições deve ser verdadeira.
  * Exemplo: `status:"open" OR status:"pending"` buscará registros onde o `status` é "open" ou "pending".

## Agrupando condições

Você pode agrupar várias condições usando parênteses `()` para criar subconsultas mais complexas.

* Exemplo: `customer.name~"Bruno" AND (status:"open" OR status:"pending")` buscará registros onde o nome do cliente contém "Bruno" e o `status` é "open" ou "pending".

## Exemplos

* Buscar clientes com o nome "Bruno" e status "open" ou "pending":
  ```
  customer.name~"Bruno" AND (status:"open" OR status:"pending")
  ```

* Buscar clientes com o documento "12312312345" e status "canceled":
  ```
  customer.document:"12312312345" AND status:canceled
  ```

* Buscar registros criados entre 1º e 15 de setembro de 2023, com o nome "Bruno" e status "open" ou "pending":
  ```
  customer.name~"Bruno" AND (status:"open" OR status:"pending") AND createdAt>=2023-09-01 AND createdAt<2023-09-15
  ```

## Limitações

1. A pesquisa é sensível ao posicionamento dos operadores lógicos e de comparação. Certifique-se de não incluir espaços extras.
2. Palavras-chave como `AND` e `OR` devem ser escritas em maiúsculas.
