Skip to main content

Recherche plein-texte

Les offres et les candidats sont indexés en PostgreSQL via tsvector avec configuration french. Les résultats sont triés par pertinence + date.

Pipeline d’indexation

Pondération des colonnes

Requête type

Syntaxe utilisateur (websearch_to_tsquery)

Endpoints concernés

Autocomplete

Séparé de la recherche principale — utilise pg_trgm (trigrams) pour la tolérance aux fautes.

Filtres combinables

Paramètres de recherche

Limitations

  • La recherche tsvector ignore les mots vides français (stopwords). Ex. “le”, “de”, “un” ne sont jamais indexés.
  • La longueur max de q est 200 caractères.
  • websearch_to_tsquery supporte les opérateurs simples ; pour prefix* il faut passer par /autocomplete.

Rafraîchissement de l’index

L’index GIN est mis à jour en synchrone via trigger. Pas de job asynchrone nécessaire.

Monitoring

Candidats — recherche recruteur

La recherche candidats (accessible aux recruteurs via vivier) est plus restreinte :
  • Le candidat doit avoir opté pour la visibilité publique de son profil
  • Les critères sont : compétences, niveau d’expérience, secteur, ville
  • La description libre et le CV ne sont pas indexés dans search_vector (RGPD)