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

Abréviations de recherche en texte intégral PostgreSQL

@pozs a raison. Vous devez utiliser un dictionnaire de synonymes .

1 - Dans le répertoire $SHAREDIR/tsearch_data créez le fichier german.syn avec le contenu suivant :

Bez Bezirk

2 - Exécutez la requête :

CREATE TEXT SEARCH DICTIONARY german_syn (
    template = synonym,
    synonyms = german);
CREATE TEXT SEARCH CONFIGURATION german_syn(COPY='simple');
ALTER TEXT SEARCH CONFIGURATION german_syn
    ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
        word, hword, hword_part
    WITH german_syn, german_stem;

Vous pouvez maintenant le tester. Exécuter des requêtes :

test=# SELECT to_tsvector('german_syn', 'Bezirk') @@ to_tsquery('german_syn', 'Bezirk & Bez');
 ?column? 
----------
 t
(1 row)

test=# SELECT to_tsvector('german_syn', 'Bez Bez.') @@ to_tsquery('german_syn', 'Bezirk');
 ?column? 
----------
 t
(1 row)

Liens supplémentaires :

  1. PostgreSQL :un moteur de recherche en texte intégral (expiré)