Recherche plein texte

Chaque enregistrement est indexé automatiquement pour la recherche par mots-clés. Une requête renvoie les enregistrements qui contiennent ses mots, le meilleur résultat en premier, et uniquement ceux que l'appelant peut lire.

Ce qui est indexé

L'index couvre la clé naturelle de chaque enregistrement et ses données, la clé naturelle ayant le poids le plus élevé. C'est une colonne générée dans Postgres : la base la tient donc à jour à mesure que les enregistrements sont écrits.

Comment une requête fait correspondre

Une requête retient les enregistrements qui contiennent les mots recherchés et les classe par pertinence, du meilleur au moins bon. La correspondance se fait sur des mots entiers, selon les règles de la langue anglaise. La correspondance par sous-chaîne et par préfixe sur un seul champ relève des requêtes de liste, qui ont des filtres contient et commence par pour les champs texte. La recherche par le sens est une fonctionnalité distincte, la recherche sémantique.

Limitée à ce que l'appelant peut lire

La recherche s'exécute sous les règles d'accès au niveau des lignes de l'appelant, de sorte qu'un enregistrement que l'appelant ne peut pas lire n'est jamais un résultat. Sur l'API publique, chaque résultat est ensuite résolu comme le ferait une lecture ordinaire, et celui que l'appelant ne peut pas voir est écarté.

L'appeler

searchRecords cherche dans tous les modèles et peut être restreinte à un seul par sa clé de modèle. Chaque résultat renvoie l'id de l'enregistrement, sa clé de modèle, sa clé naturelle, un score et le contenu. La requête exige la portée search:read et une clé restreinte à certains modèles ne peut pas l'exécuter sur tous les modèles. foir search exécute la même recherche depuis un terminal.

Lire le détail

La référence du SDK liste les appels de recherche du client de données, sur tous les modèles et par modèle.