From 311bcfc6b3acdd6fd152798c7f287ddf74fa2a98 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 16 Apr 2024 21:46:48 +0200 Subject: Adding upstream version 15.4. Signed-off-by: Daniel Baumann --- doc/src/sgml/dict-xsyn.sgml | 149 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 doc/src/sgml/dict-xsyn.sgml (limited to 'doc/src/sgml/dict-xsyn.sgml') diff --git a/doc/src/sgml/dict-xsyn.sgml b/doc/src/sgml/dict-xsyn.sgml new file mode 100644 index 0000000..256aff7 --- /dev/null +++ b/doc/src/sgml/dict-xsyn.sgml @@ -0,0 +1,149 @@ + + + + dict_xsyn + + + dict_xsyn + + + + dict_xsyn (Extended Synonym Dictionary) is an example of an + add-on dictionary template for full-text search. This dictionary type + replaces words with groups of their synonyms, and so makes it possible to + search for a word using any of its synonyms. + + + + Configuration + + + A dict_xsyn dictionary accepts the following options: + + + + + matchorig controls whether the original word is accepted by + the dictionary. Default is true. + + + + + matchsynonyms controls whether the synonyms are + accepted by the dictionary. Default is false. + + + + + keeporig controls whether the original word is included in + the dictionary's output. Default is true. + + + + + keepsynonyms controls whether the synonyms are included in + the dictionary's output. Default is true. + + + + + rules is the base name of the file containing the list of + synonyms. This file must be stored in + $SHAREDIR/tsearch_data/ (where $SHAREDIR means + the PostgreSQL installation's shared-data directory). + Its name must end in .rules (which is not to be included in + the rules parameter). + + + + + The rules file has the following format: + + + + + Each line represents a group of synonyms for a single word, which is + given first on the line. Synonyms are separated by whitespace, thus: + +word syn1 syn2 syn3 + + + + + + The sharp (#) sign is a comment delimiter. It may appear at + any position in a line. The rest of the line will be skipped. + + + + + + Look at xsyn_sample.rules, which is installed in + $SHAREDIR/tsearch_data/, for an example. + + + + + Usage + + + Installing the dict_xsyn extension creates a text search + template xsyn_template and a dictionary xsyn + based on it, with default parameters. You can alter the + parameters, for example + + +mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false); +ALTER TEXT SEARCH DICTIONARY + + + or create new dictionaries based on the template. + + + + To test the dictionary, you can try + + +mydb=# SELECT ts_lexize('xsyn', 'word'); + ts_lexize +----------------------- + {syn1,syn2,syn3} + +mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=true); +ALTER TEXT SEARCH DICTIONARY + +mydb=# SELECT ts_lexize('xsyn', 'word'); + ts_lexize +----------------------- + {word,syn1,syn2,syn3} + +mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false, MATCHSYNONYMS=true); +ALTER TEXT SEARCH DICTIONARY + +mydb=# SELECT ts_lexize('xsyn', 'syn1'); + ts_lexize +----------------------- + {syn1,syn2,syn3} + +mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=true, MATCHORIG=false, KEEPSYNONYMS=false); +ALTER TEXT SEARCH DICTIONARY + +mydb=# SELECT ts_lexize('xsyn', 'syn1'); + ts_lexize +----------------------- + {word} + + + Real-world usage will involve including it in a text search + configuration as described in . + That might look like this: + + +ALTER TEXT SEARCH CONFIGURATION english + ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem; + + + + + + -- cgit v1.2.3