Skip to main content
Jarvi betreibt eine Volltextsuchmaschine über deine Daten. Namen, E-Mail-Adressen, Telefonnummern, Jobtitel, Kompetenzen und Werte eigener Felder sind indiziert, und _search fragt diese Indizes ab. Mit _ilike "%Begriff%" zu filtern macht etwas völlig anderes: PostgreSQL geht jeden Datensatz deines Arbeitsbereichs durch und vergleicht ihn mit dem Muster. Auf einer Produktivdatenbank wurde ein einzelnes _ilike auf einen Nachnamen mit 2,4 Sekunden gemessen; dieselbe Suche über den Index antwortet in einigen zehn Millisekunden.
_ilike, _like, _nilike und _nlike werden am 31. Juli 2027 aus der öffentlichen API entfernt.Bei den REST-Endpunkten musst du nichts tun — _ilike-Filter werden bereits für dich in eine indizierte Suche übersetzt, und die Antwort nennt den Filter, der deinen ersetzt hat. Über den Endpunkt /graphql gehört die Abfrage dir: sie kann jede Tabelle ansprechen, also änderst du sie selbst.

Den Operator verwenden

Ein Filter besteht aus dem Namen eines Suchziels und einem Begriff:
Kombiniere mehrere mit _and, _or und _not, wie bei jedem anderen Filter:

Abfragesyntax

Der Begriff ist selbst eine Abfrage, keine einfache Zeichenkette:

Ganze Wörter, keine Fragmente

Namen werden Wort für Wort vom Anfang her indiziert: Dupo findet Dupont, upont nicht. Dasselbe gilt für Unternehmens- und Projektnamen. E-Mail-Adressen und Telefonnummern sind anders indiziert und treffen ein Fragment an beliebiger Stelle: eine Nummer findest du über ihre letzten Ziffern, eine E-Mail über ihre Domain.

Die Filter, Ressource für Ressource

Alle folgenden Filter stützen sich auf einen Index. Andere Hasura-Spalten und -Beziehungen werden weiterhin akzeptiert, sind aber weder optimiert noch garantiert.

Profiles

Companies

Projects

Diese Listen werden von der Suchmaschine selbst erzeugt und entsprechen damit immer dem, was die API akzeptiert. Dieselben Definitionen werden als JSON Schema von GET /openapi ausgeliefert, unter ProfilesFilters, CompaniesFilters und ProjectsFilters.

Sortieren

Der Parameter orderBy jedes REST-Endpunkts verbindet ein Feld mit einer Richtung:
Welche Felder eine Ressource akzeptiert, steht in der Dokumentation des Parameters selbst, auf der Seite des Endpunkts. Nach etwas anderem zu sortieren fällt auf die Standardreihenfolge zurück, statt zu scheitern.

Über GraphQL suchen

Die Query search liefert Bezeichner und eine Gesamtzahl, die du anschließend mit einem zweiten Aufruf lädst. Diese Aufteilung in zwei Schritte hält eine Suche schnell, unabhängig von der Größe der Datensätze:
resource ist profiles, companies oder projects. filters nimmt dasselbe Objekt wie der REST-Parameter where.

Weg von _ilike

Ein Bezeichner oder eine URL ist nie eine Suche: nimm _eq, das über seinen eigenen Index läuft.
Fehlt dir etwas, oder findest du einen erwarteten Filter nicht? Schreib uns — die Liste oben wird von der Suchmaschine gesteuert, einen Filter hinzuzufügen ist eine kleine Änderung.