F.42. test_parser

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()関数として使用することができますますので、例を単純にしています。

F.42.1. 使用方法

test_parser拡張をインストールすると、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)