Volltextsuche

Jeder Datensatz wird automatisch für die Stichwortsuche indexiert. Eine Abfrage gibt die Datensätze zurück, die ihre Wörter enthalten, den besten Treffer zuerst, und nur die, die der Aufrufer lesen darf.

Was indexiert wird

Der Index umfasst den natürlichen Schlüssel jedes Datensatzes und seine Daten, wobei der natürliche Schlüssel am höchsten gewichtet wird. Er ist in Postgres eine generierte Spalte, sodass die Datenbank ihn beim Schreiben von Datensätzen aktuell hält.

Wie eine Abfrage trifft

Eine Abfrage trifft Datensätze, die die Suchwörter enthalten, und ordnet sie nach Relevanz, den besten zuerst. Verglichen wird auf ganze Wörter, nach englischen Sprachregeln. Teilstring- und Präfix-Suche auf einem einzelnen Feld gehören zu den Listenabfragen, die für Textfelder die Filter contains und starts-with bieten. Das Auffinden nach Bedeutung ist ein eigenes Feature, die semantische Suche.

Beschränkt auf das, was der Aufrufer lesen darf

Die Suche läuft unter den Zugriffsregeln auf Zeilenebene, die für den Aufrufer gelten, sodass ein Datensatz, den der Aufrufer nicht lesen kann, kein Treffer ist. In der öffentlichen API wird jeder Treffer anschließend so aufgelöst, wie ein gewöhnlicher Lesezugriff ihn auflösen würde, und einer, den der Aufrufer nicht sehen darf, wird verworfen.

Aufruf

searchRecords sucht modellübergreifend und lässt sich über den Modellschlüssel auf ein Modell eingrenzen. Jeder Treffer liefert die ID des Datensatzes, seinen Modellschlüssel, seinen natürlichen Schlüssel, einen Score und den Inhalt. Die Abfrage benötigt search:read als Scope, und ein auf bestimmte Modelle beschränkter Schlüssel kann sie nicht modellübergreifend ausführen. foir search führt dieselbe Suche im Terminal aus.

Details nachlesen

Die SDK-Referenz listet die Suchaufrufe des Daten-Clients auf, modellübergreifend und pro Modell.