We (Oleg and me) are glad to present tsearch in core of pgsql patch. In basic,
layout, functions, methods, types etc are the same as in current tsearch2 with a
lot of improvements:
- pg_ts_* tables now are in pg_catalog - parsers, dictionaries, configurations now have owner and namespace similar to
other pgsql's objects like tables, operator classes etc - current tsearch configuration is managed with a help of GUC
variable tsearch_conf_name. - choosing of tsearch cfg by locale may be done for each schema separately - managing of
tsearchconfiguration with a help of SQL commands, not with insert/update/delete statements. This allows to drive
dependencies, correct dumping and dropping. - psql support with a help of \dF* commands - add all available Snowball
stemmersand corresponding configuration - correct memory freeing by any dictionary
Work is sponsored by EnterpriseDB's PostgreSQL Development Fund.
patch: http://www.sigaev.ru/misc/tsearch_core-0.33.gz
docs: http://mira.sai.msu.su/~megera/pgsql/ftsdoc/ (not yet completed and it's
not yet a patch, just a SGML source)
Implementation details:
- directory layout src/backend/utils/adt/tsearch - all IO function and simple operations
src/backend/utils/tsearch- complex processing functions, including language processing and dictionaries
- most of snowball dictionaries are placed in separate .so library and they plug in into data base by similar way as
characterconversation library does.
If there aren't objections then we plan commit patch tomorrow or after tomorrow.
Before committing, I'll changes oids from 5000+ to lower values to prevent holes
in oids. And after that, I'll remove tsearch2 contrib module.
--
Teodor Sigaev E-mail: teodor@sigaev.ru
WWW: http://www.sigaev.ru/