# Pesquisa Avançada

A RealmJoin apresenta um mecanismo de pesquisa renovado que permite acesso em tempo real aos dados do tenant. Este aprimoramento garante um desempenho eficiente mesmo para tenants com um grande volume de objetos de utilizador, dispositivo e grupo.

{% hint style="success" %}
A experiência de Pesquisa Avançada está disponível para as tabelas de Utilizadores, Grupos, Dispositivos e Packages. \
Consulte a subpágina Use Cases para exemplos que ajudam a obter mais valor dos dados do seu tenant.&#x20;
{% endhint %}

As tabelas podem ser pesquisadas usando a *pesquisa básica* ou a *pesquisa avançada* .&#x20;

{% hint style="info" %} <mark style="color:padrão;background-color:yellow;">**Todas as pesquisas têm de ser confirmadas utilizando o**</mark><mark style="color:padrão;background-color:yellow;">**&#x20;**</mark>*<mark style="color:padrão;background-color:yellow;">**símbolo da tecla Enter**</mark>*<mark style="color:padrão;background-color:yellow;">**&#x20;**</mark><mark style="color:padrão;background-color:yellow;">**ou a**</mark>  <img src="https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FHli0RfKsBzt7a91EpdOv%2Fimage.png?alt=media&#x26;token=eadfefc7-d7b2-485c-9902-6fa6c94f8ee4" alt="" data-size="line"> <mark style="color:padrão;background-color:yellow;">**.**</mark>&#x20;
{% endhint %}

### Pesquisa Básica

A Pesquisa Básica usa a Graph API para consultar diretamente os dados do tenant, fornecendo resultados em tempo real.&#x20;

A Pesquisa Básica está sempre disponível como alternativa quando a Pesquisa Avançada não está. Também aparece durante o carregamento inicial da tabela em cache, permitindo que os utilizadores pesquisem imediatamente — mesmo antes de a cache estar totalmente construída.

### Pesquisa Avançada

A funcionalidade de pesquisa avançada da RealmJoin usa cache e tokenização, tornando as pesquisas rápidas e fiáveis, e suporta caracteres Unicode como Ø. Esta tokenização permite pesquisas por nomes parciais, pelo que uma consulta como "Ma Mu" pode localizar um utilizador chamado "Maren Müller".&#x20;

Além disso, informações não apresentadas na tabela também podem ser pesquisadas, como códigos postais ou UPN.&#x20;

<figure><img src="https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FpPoUYZyJG9anFKPfehrX%2Fimage.png?alt=media&#x26;token=f27e3c2f-2fa8-41c1-8941-f90c1e6763fe" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Certifique-se de usar apenas o "botão Recarregar" no canto superior direito se estiver em falta informação adicionada muito recentemente do Entra / Intune.
{% endhint %}

### Visão Geral da Sintaxe da Pesquisa Avançada

A Pesquisa Avançada permite consultar todos os valores disponíveis da tabela usando uma sintaxe flexível e poderosa. Abaixo estão as principais funcionalidades e regras:

{% hint style="success" %}
Clique [aqui](https://docs.realmjoin.com/pt/analisar-e-exportar/advanced-search/advanced-search-syntax) para mais exemplos e casos de utilização de exemplo
{% endhint %}

* **Pesquisa Tokenizada**:\
  Os termos de pesquisa são automaticamente tokenizados para melhorar a precisão da correspondência. Por exemplo, ao escrever `lu sk` corresponderá a nomes como **Luke Skywalker**. A pesquisa usa sempre uma abordagem **starts-with** em vez de uma pesquisa de texto completo ou de "contém". Isto significa que uma pesquisa por `walk` não **irá** devolver **Skywalker**.
* **AND Lógico**:\
  Todos os filtros são combinados usando o operador lógico **AND**. Todas as condições têm de ser satisfeitas.\
  Exemplo: `Luke Skywalker country:france` pesquisa Luke Skywalker onde o **country** começa por "france".
* **Pesquisa Específica de Coluna**:\
  Use `column:` para pesquisar dentro de uma coluna específica.\
  Exemplo: `country:france` pesquisa entradas onde o **country** começa por "france".
* **Operadores**:
  * `:` → **startsWith** pesquisa\
    Exemplo: `name:jo` corresponde a "John", "Joanna", etc.
  * `=` → **equals** pesquisa\
    Exemplo: `city=Stuttgart` corresponde exatamente a "Stuttgart"
  * `!=` ou `!:` → **negação**\
    Exemplo: `city!=Stuttgart`ou `city!:Stuttgart` exclui "Suttgart"
* **Comportamento Especial**:
  * **Substituição de trema**:\
    Os trema são normalizados (por exemplo, **Björn** pode ser encontrado procurando por **Bjorn**).
  * **Suporte a Unicode**:\
    Os caracteres Unicode são suportados nos termos de pesquisa.
  * **Os parênteses () são ignorados** nas pesquisas startsWith.
  * **Pesquisa de valor vazio**:
    * `zip:""` pesquisa valores vazios
    * `zip:` pesquisa qualquer valor
* **Colunas Suportadas**:
  * Podem existir aliases para nomes de colunas, listados entre parênteses
  * Tabela de utilizadores:
    * `name, upn, language (lang), jobtitle (job), city, country, zip (plz), enabled, department (dept)`
      * `enabled:` → aceita `verdadeiro` ou `falso` (`enabled:true`)
  * Tabela de grupos
    * `name`
  * Tabela de dispositivos
    * `name, operatingsystem (os), manufacturer (manu), model`

### FAQ

#### Com que frequência os dados são guardados em cache?

A tabela é guardada em cache segundo um agendamento, atualmente definido para 1 hora.&#x20;

#### Posso atualizar os dados manualmente?

No canto superior direito de cada tabela, existe um botão para atualizar os dados em cache.

#### Outros utilizadores podem usar os meus dados atualizados?

A tabela está disponível para todos os utilizadores na mesma instância do portal RealmJoin. Assim, uma reconstrução acionada fará isso para todos esses utilizadores.&#x20;

#### O que é uma instância do portal RealmJoin?

O portal RealmJoin tem três instâncias diferentes por motivos de balanceamento de carga e redundância.&#x20;

#### Quanto tempo demora uma reconstrução/atualização da pesquisa avançada?

O tempo de reconstrução depende do tamanho do tenant e do número de objetos. Não é incomum que a reconstrução possa demorar vários minutos. Durante a reconstrução, apenas a pesquisa básica está disponível. Todos os dados são então consultados diretamente via Graph, reduzindo assim as capacidades de filtragem e a velocidade.
