test_parser est un exemple d'analyseur personnalisé pour la recherche plein texte. Il ne fait rien de particulièrement utile mais peut servir comme point de départ pour développer votre propre analyseur.
test_parser reconnaît les mots séparés par des espaces blancs, et renvoie simplement deux types de jeton :
mydb=# SELECT * FROM ts_token_type('testparser'); tokid | alias | description -------+-------+--------------- 3 | word | Word 12 | blank | Space symbols (2 rows)
Ces nombres jeton ont été choisis pour être compatible avec la numération par défaut de l'analyseur. Ceci nous permet d'utiliser sa fonction headline(), conservant du coup l'exemple simple.
Installer l'extension test_parser crée un analyseur de recherche plein texte nommé testparser. Il n'utilise pas de paramètres configurables.
Vous pouvez tester l'analyseur avec, par exemple :
mydb=# SELECT * FROM ts_parse('testparser', 'That''s my first own parser'); tokid | token -------+-------- 3 | That's 12 | 3 | my 12 | 3 | first 12 | 3 | own 12 | 3 | parser
Une utilisation réelle nécessite le paramétrage d'une configuration de recherche plein texte qui utilise cet analyseur. Par exemple :
mydb=# CREATE TEXT SEARCH CONFIGURATION testcfg ( PARSER = testparser ); CREATE TEXT SEARCH CONFIGURATION mydb=# ALTER TEXT SEARCH CONFIGURATION testcfg mydb-# ADD MAPPING FOR word WITH english_stem; ALTER TEXT SEARCH CONFIGURATION mydb=# SELECT to_tsvector('testcfg', 'That''s my first own parser'); to_tsvector ------------------------------- 'that':1 'first':3 'parser':5 (1 row) mydb=# SELECT ts_headline('testcfg', 'Supernovae stars are the brightest phenomena in galaxies', mydb(# to_tsquery('testcfg', 'star')); ts_headline ----------------------------------------------------------------- Supernovae <b>stars</b> are the brightest phenomena in galaxies (1 row)