test_parserは、全文検索用の独自パーサの例です。 これは特に有用なことはまったく行いませんが、独自パーサ開発の開始点として提供することができます。
test_parserは空白で区切られた単語を認知し、2つのトークン種類だけを返します。
mydb=# SELECT * FROM ts_token_type('testparser'); tokid | alias | description -------+-------+--------------- 3 | word | Word 12 | blank | Space symbols (2 rows)
これらのトークン数はデフォルトパーサの数え方と互換性があるように選択されました。
これにより、headline()
関数として使用することができますますので、例を単純にしています。
インストールスクリプトを実行すると、testparserテキスト検索パーサが作成されます。 ユーザが設定可能なパラメータはありません。
例えば、このパーサを試験することができます。
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
実際に使用する場合は、このパーサを使用するテキスト検索設定の構築が必要です。 以下に例を示します。
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)