Recherche plein texte
Les tables déclarent ce qui est cherchable. Deux propriétés au niveau du champ contrôlent comment un champ participe à la recherche : indexed le rend interrogeable, et fullTextSearch (sur rich-text) active l'indexation FTS pour le contenu formaté. Les composants choisissent ensuite le moteur qui les consomme — voir search-overview.
Propriétés des champs
| Propriété | S'applique à | Description |
|---|---|---|
indexed |
Tous les types de champs | Booléen. Crée un index de base de données sur le champ. Requis pour les moteurs fts, trigram et hybrid. |
fullTextSearch |
rich-text |
Booléen. Active l'indexation de recherche plein texte pour le contenu formaté du champ. |
Ces propriétés étendent les propriétés de base des champs partagées par chaque type de champ.
Déclarer les champs cherchables
Marquez avec indexed: true chaque champ que les moteurs fts, trigram ou hybrid doivent atteindre. Un champ rich-text requiert en plus fullTextSearch: true, car sa valeur stockée est du balisage HTML plutôt que du texte brut.
tables:
- name: articles
fields:
- { id: 1, name: title, type: single-line-text, indexed: true }
- { id: 2, name: summary, type: long-text, indexed: true }
- { id: 3, name: tags, type: single-line-text, indexed: true }
- { id: 4, name: body, type: rich-text, indexed: true, fullTextSearch: true }Chaque champ indexé contribue également au score de pertinence. Il n'existe pas de pondération par champ : une correspondance dans title et une correspondance dans body comptent pareil. Classez par récence ou par une autre clé de tri lorsqu'un champ doit primer.
fullTextSearch sur le texte enrichi
Le champ rich-text stocke du HTML formaté. Définir fullTextSearch: true active l'indexation de recherche plein texte de son contenu textuel afin que le champ puisse participer aux requêtes fts/hybrid aux côtés des champs de texte brut.
- id: 5
name: article_content
type: rich-text
required: true
maxLength: 10000
fullTextSearch: true
toolbar: [bold, italic, link, heading, list]Les champs long-text et single-line-text simples n'ont pas besoin de fullTextSearch — définissez indexed: true et ils sont prêts pour le FTS. L'indicateur fullTextSearch existe spécifiquement pour rich-text car sa valeur stockée est du balisage HTML plutôt que du texte brut. Voir text-fields pour l'ensemble complet des propriétés rich-text.
PostgreSQL vs SQLite
| Aspect | PostgreSQL | SQLite |
|---|---|---|
| Moteur FTS | tsvector/tsquery natif avec classement par pertinence. |
Correspondance plus simple ; le classement est réduit. |
| Correspondance floue | Extension pg_trgm (trigram, tolérant aux fautes). |
Non disponible — le moteur trigram cible Postgres. |
| Recommandation | À utiliser pour une recherche fts/trigram/hybrid adossée à un index. |
Par défaut sans configuration ; concevez la recherche classée sur Postgres. |
SQLite est la base de données par défaut sans configuration de Sovrium. Pour une recherche de production qui dépend de la pertinence classée ou de la correspondance floue (trigram/hybrid), exécutez contre PostgreSQL où tsvector et pg_trgm sont disponibles.
Correspondance floue trigram
L'extension pg_trgm décompose le texte en séquences de trois caractères (trigrammes) et fait correspondre sur le chevauchement, tolérant les fautes de frappe et les mots partiels. Cela alimente les moteurs trigram et hybrid. Un champ utilisé pour la recherche floue devrait être indexed: true afin que PostgreSQL puisse construire un index trigram (GIN/GiST).
tables:
- name: products
fields:
- { id: 1, name: name, type: single-line-text, indexed: true }# Component side — fuzzy matching on the indexed field
- type: data-table
dataSource:
table: products
mode: search
searchFields: [name]
searchEngine: trigramUne requête de prodct correspond toujours à product ; lapto correspond à laptop. Associez le trigram au FTS avec searchEngine: 'hybrid' pour conserver le classement par pertinence pour les termes exacts tout en conservant la tolérance aux fautes pour le reste.
Associé
- Présentation de la recherche — les quatre moteurs de recherche et le mode de source de données
search. - Composants de recherche —
searchInput,list,pageSearchet la recherche de barre d'outils. - Champs texte —
rich-text,long-textet l'indicateurfullTextSearch. - Présentation des tables —
indexedet autres propriétés de base des champs.
Dernière mise à jour 11 août 2026
Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.