Movatterモバイル変換


[0]ホーム

URL:



Facebook
Postgres Pro
Facebook
Downloads
PostgreSQL 9.4.1 Documentation
PrevUpAppendix F. Additional Supplied ModulesNext

F.43. unaccent

unaccent is a text search dictionary that removes accents (diacritic signs) from lexemes. It's a filtering dictionary, which means its output is always passed to the next dictionary (if any), unlike the normal behavior of dictionaries. This allows accent-insensitive processing for full text search.

The current implementation ofunaccent cannot be used as a normalizing dictionary for thethesaurus dictionary.

F.43.1. Configuration

Anunaccent dictionary accepts the following options:

  • RULES is the base name of the file containing the list of translation rules. This file must be stored in$SHAREDIR/tsearch_data/ (where$SHAREDIR means thePostgreSQL installation's shared-data directory). Its name must end in.rules (which is not to be included in theRULES parameter).

The rules file has the following format:

  • Each line represents a pair, consisting of a character with accent followed by a character without accent. The first is translated into the second. For example,

    À        AÁ        AÂ        AÃ        AÄ        AÅ        AÆ        A

A more complete example, which is directly useful for most European languages, can be found inunaccent.rules, which is installed in$SHAREDIR/tsearch_data/ when theunaccent module is installed.

F.43.2. Usage

Installing theunaccent extension creates a text search templateunaccent and a dictionaryunaccent based on it. Theunaccent dictionary has the default parameter settingRULES='unaccent', which makes it immediately usable with the standardunaccent.rules file. If you wish, you can alter the parameter, for example

mydb=# ALTER TEXT SEARCH DICTIONARY unaccent (RULES='my_rules');

or create new dictionaries based on the template.

To test the dictionary, you can try:

mydb=# select ts_lexize('unaccent','Hôtel'); ts_lexize----------- {Hotel}(1 row)

Here is an example showing how to insert theunaccent dictionary into a text search configuration:

mydb=# CREATE TEXT SEARCH CONFIGURATION fr ( COPY = french );mydb=# ALTER TEXT SEARCH CONFIGURATION fr        ALTER MAPPING FOR hword, hword_part, word        WITH unaccent, french_stem;mydb=# select to_tsvector('fr','Hôtels de la Mer');    to_tsvector------------------- 'hotel':1 'mer':4(1 row)mydb=# select to_tsvector('fr','Hôtel de la Mer') @@ to_tsquery('fr','Hotels'); ?column?---------- t(1 row)mydb=# select ts_headline('fr','Hôtel de la Mer',to_tsquery('fr','Hotels'));      ts_headline------------------------ <b>Hôtel</b> de la Mer(1 row)

F.43.3. Functions

Theunaccent() function removes accents (diacritic signs) from a given string. Basically, it's a wrapper around theunaccent dictionary, but it can be used outside normal text search contexts.

unaccent([dictionary,]string) returnstext

For example:

SELECT unaccent('unaccent', 'Hôtel');SELECT unaccent('Hôtel');


PrevHomeNext
tsearch2Upuuid-ossp
Go to PostgreSQL 9.4
By continuing to browse this website, you agree to the use of cookies. Go toPrivacy Policy.

[8]ページ先頭

©2009-2025 Movatter.jp