# Advanced Search

RealmJoin introduces a revamped search mechanism that enables real-time access to tenant data. This enhancement ensures efficient performance even for tenants with a large volume of user, device, and group objects.

{% hint style="success" %}
The Advanced Search experience is available for the Users-, Groups-, Devices- & Packages-Table.\
Check out the Use Cases subpage for examples that help you get more value from your tenant data.
{% endhint %}

Tables can be searched using the *basic* or the *advanced* search feature.

{% hint style="info" %} <mark style="background-color:yellow;">**All searches have to be confirmed by either using the**</mark><mark style="background-color:yellow;">**&#x20;**</mark>*<mark style="background-color:yellow;">**enter key**</mark>*<mark style="background-color:yellow;">**&#x20;**</mark><mark style="background-color:yellow;">**or the**</mark> <img src="/files/YS0lK6kEUTLtQbvDvuNl" alt="" data-size="line"> <mark style="background-color:yellow;">**symbol.**</mark>
{% endhint %}

### Basic Search

Basic Search uses the Graph API to directly query tenant data, providing real-time results.

Basic Search is always available as a fallback when Advanced Search is not. It also appears during the initial loading of the cached table, allowing users to search immediately—even before the cache is fully built.

### Advanced Search

RealmJoin's advanced search feature uses caching and tokenization, making searches fast and reliable, and supports Unicode characters like Ø. This tokenization enables partial name searches, so a query like "Ma Mu" can locate a user named "Maren Müller".

Additionally, information not displayed in the table is also searchable, like post-codes or UPN.

<figure><img src="/files/vKP2DUT1nKIQeJ95j5aI" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Please make sure to only use the "Reload-Button" in the top right corner if you are missing very recently added information from Entra / Intune.
{% endhint %}

### Advanced Search Syntax Overview

Advanced Search allows querying across available table values using a flexible and powerful syntax. Below are the key features and rules:

{% hint style="success" %}
Click [here](/analyze-and-export/advanced-search/advanced-search-syntax.md) for more examples and sample use cases
{% endhint %}

* **Tokenized Search**:\
  Search terms are automatically tokenized to improve matching accuracy. For example, typing `lu sk` will match names like **Luke Skywalker**. The search always uses a **starts-with** approach rather than a full-text or "contains" search. This means a search for `walk` would **not** return **Skywalker**.
* **Logical AND**:\
  All filters are combined using logical **AND**. Every condition must be met.\
  Example: `Luke Skywalker country:france` searches for Luke Skywalker where the **country** starts with "france".
* **Column-specific Search**:\
  Use `column:` to search within a specific column.\
  Example: `country:france` searches for entries where the **country** starts with "france".
* **Operators**:
  * `:` → **startsWith** search\
    Example: `name:jo` matches "John", "Joanna", etc.
  * `=` → **equals** search\
    Example: `city=Stuttgart` matches exactly "Stuttgart"
  * `!=` or `!:` → **negation**\
    Example: `city!=Stuttgart`or `city!:Stuttgart` excludes "Suttgart"
* **Special Behavior**:
  * **Umlaut substitution**:\
    Umlauts are normalized (e.g., **Björn** can be found by searching for **Bjorn**).
  * **Unicode support**:\
    Unicode characters are supported in search terms.
  * **Brackets () are ignored** in startsWith searches.
  * **Empty value search**:
    * `zip:""` searches for empty values
    * `zip:` searches for any value
* **Supported Columns**:
  * Aliases for column names may exist and are listed in brackets
  * User table:
    * `name, upn, language (lang), jobtitle (job), city, country, zip (plz), enabled, department (dept)`
      * `enabled:` → accepts `true` or `false` (`enabled:true`)
  * Groups table
    * `name`
  * Device table
    * `name, operatingsystem (os), manufacturer (manu), model`

### FAQ

#### How often is the data cached?

The table is cached on a schedule, currently set to 1 hour.

#### Can I refresh the data manually?

In the top right corner of each table, there's a button to refresh the cached data.

#### Can other users use my refreshed data?

The table is available for all users in the same RealmJoin portal instance. Thus, a triggered rebuild will do so for all those users.

#### What is a RealmJoin portal instance?

The RealmJoin portal has three different instances for load balancing and redundancy reasons.

#### How long will a rebuild/refresh of the advanced search take?

The rebuild time depends on the size of the tenant and the number of objects. It is not uncommon, that the rebuild might take several minutes. During the rebuild, only the basic search is available. All data is then queried directly via Graph, thus reducing the capabilities in filtering and speed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.realmjoin.com/analyze-and-export/advanced-search.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
