Skip to main content
Jarvi fait tourner un moteur de recherche plein texte sur vos données. Les noms, emails, numéros de téléphone, intitulés de poste, compétences et valeurs de champs personnalisés sont indexés, et _search interroge ces index. Filtrer avec _ilike "%terme%" fait tout autre chose : PostgreSQL parcourt chaque enregistrement de votre espace et le compare au motif. Sur une base de production, un seul _ilike sur un nom de famille a été mesuré à 2,4 secondes ; la même recherche via l’index répond en quelques dizaines de millisecondes.
_ilike, _like, _nilike et _nlike seront retirés de l’API publique le 31 juillet 2027.Sur les endpoints REST vous n’avez rien à faire — les filtres _ilike sont déjà traduits en recherche indexée pour vous, et la réponse indique quel filtre a remplacé le vôtre. Via l’endpoint /graphql, la requête vous appartient : elle peut viser n’importe quelle table, c’est donc à vous de la changer.

Utiliser l’opérateur

Un filtre prend le nom d’une cible de recherche et un terme :
Combinez-en plusieurs avec _and, _or et _not, comme n’importe quel autre filtre :

Syntaxe de requête

Le terme est lui-même une requête, pas une simple chaîne :

Des mots entiers, pas des fragments

Les noms sont indexés mot à mot, depuis le début : Dupo trouve Dupont, upont non. Il en va de même pour les noms d’entreprises et de projets. Les emails et les numéros de téléphone sont indexés autrement et acceptent un fragment n’importe où : un numéro se retrouve par ses derniers chiffres, un email par son domaine.

Les filtres, ressource par ressource

Tous les filtres ci-dessous s’appuient sur un index. Les autres colonnes et relations Hasura restent acceptées, mais elles ne sont ni optimisées ni garanties.

Profiles

Companies

Projects

Ces listes sont générées depuis le moteur de recherche lui-même : elles correspondent toujours à ce que l’API accepte. Les mêmes définitions sont servies en JSON Schema par GET /openapi, sous ProfilesFilters, CompaniesFilters et ProjectsFilters.

Trier

Le paramètre orderBy de chaque endpoint REST associe un champ et un sens :
Les champs acceptés par une ressource sont listés dans la documentation du paramètre, sur la page de l’endpoint. Trier sur autre chose retombe sur l’ordre par défaut plutôt que d’échouer.

Chercher via GraphQL

La query search renvoie des identifiants et un total, que vous chargez ensuite en un second appel. Ce découpage en deux temps est ce qui garde une recherche rapide, quelle que soit la taille des fiches :
resource vaut profiles, companies ou projects. filters prend le même objet que le paramètre where du REST.

Quitter _ilike

Un identifiant ou une URL n’est jamais une recherche : utilisez _eq, qui passe par son propre index.
Il vous manque quelque chose, ou un filtre que vous attendiez n’y est pas ? Écrivez-nous — la liste ci-dessus est pilotée par le moteur, y ajouter un filtre est un petit changement.