PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment créer correctement un dictionnaire thésaurus pour ma configuration de recherche de texte personnalisée

Vous avez tout fait correctement, à quelques exceptions près :

  • thesaurus_my_swedish.ths ne doit pas être vide, mais contenir des règles comme celle-ci (extraites de votre exemple) :

    hello world : hw
    
  • Vous devez utiliser le nouveau dictionnaire pour tous les types de jetons qui utilisent désormais swedish_stem , c'est-à-dire

    ALTER TEXT SEARCH CONFIGURATION my_swedish
       ALTER MAPPING FOR asciihword, asciiword, hword, word
       WITH thesaurus_my_swedish, swedish_stem;
    

Cette erreur est mystérieuse et n'aurait pas dû se produire :

ERROR:  text search configuration "my_swedish" does not exist

Vous vous êtes peut-être connecté à la mauvaise base de données, ou vous avez de nouveau abandonné la configuration, ou elle ne se trouve pas sur le search_path et vous devez le qualifier avec son schéma. Utilisez \dF *.* dans psql pour lister toutes les configurations existantes.

Bien sûr, vous devez créer le dictionnaire avant de pouvoir l'utiliser dans une configuration de recherche de texte.

Ne modifiez pas les configurations dans pg_catalog , ces modifications seraient perdues après une mise à niveau.