Log Message: ----------- improve support of agglutinative languages (query with compound words). regression=# select to_tsquery( '\'fotballklubber\''); to_tsquery ------------------------------------------------ 'fotball' & 'klubb' | 'fot' & 'ball' & 'klubb' (1 row) So, changed interface to dictionaries, lexize method of dictionary shoud return pointer to aray of TSLexeme structs instead of char**. Last element should have TSLexeme->lexeme == NULL. typedef struct { /* number of variant of split word , for example Word 'fotballklubber' (norwegian) has two varian to split: ( fotball, klubb ) and ( fot, ball, klubb ). So, dictionary should return: nvariant lexeme 1 fotball 1 klubb 2 fot 2 ball 2 klubb */ uint16 nvariant; /* currently unused */ uint16 flags; /* C-string */ char *lexeme; } TSLexeme; Modified Files: -------------- pgsql/contrib/tsearch2: dict.c (r1.6 -> r1.7) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict.c.diff?r1=1.6&r2=1.7) dict.h (r1.2 -> r1.3) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict.h.diff?r1=1.2&r2=1.3) dict_ex.c (r1.3 -> r1.4) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_ex.c.diff?r1=1.3&r2=1.4) dict_ispell.c (r1.5 -> r1.6) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_ispell.c.diff?r1=1.5&r2=1.6) dict_snowball.c (r1.3 -> r1.4) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_snowball.c.diff?r1=1.3&r2=1.4) dict_syn.c (r1.4 -> r1.5) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_syn.c.diff?r1=1.4&r2=1.5) query.c (r1.12 -> r1.13) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/query.c.diff?r1=1.12&r2=1.13) ts_cfg.c (r1.11 -> r1.12) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ts_cfg.c.diff?r1=1.11&r2=1.12) ts_cfg.h (r1.4 -> r1.5) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ts_cfg.h.diff?r1=1.4&r2=1.5) pgsql/contrib/tsearch2/gendict: dict_tmpl.c.IN (r1.2 -> r1.3) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/gendict/dict_tmpl.c.IN.diff?r1=1.2&r2=1.3) pgsql/contrib/tsearch2/ispell: spell.c (r1.18 -> r1.19) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ispell/spell.c.diff?r1=1.18&r2=1.19) spell.h (r1.8 -> r1.9) (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ispell/spell.h.diff?r1=1.8&r2=1.9)
pgsql-committers by date:
Соглашаюсь с условиями обработки персональных данных