We (Oleg and me) are glad to present tsearch2 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 tsearch configuration 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 stemmers and 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.27.gz
Sorry, but documentation is under heavy development now and temporary placed at
http://mira.sai.msu.su/~megera/pgsql/ftsdoc/ (changes quickly :) )
So, below there is a short overview of syntax.
Comments, suggestions, objections, questions will be appreciated. We are
planning to complete the patch and suggest to commit in HEAD soon.
SQL syntax:
CREATE FULLTEXT PARSER prsname (
START = funcname,
GETTOKEN = funcname,
END = funcname,
LEXTYPES = funcname
[ , HEADLINE = funcname ]
);
CREATE FULLTEXT DICTIONARY dictname (
LEXIZE = funcname
[ , INIT = funcname ]
[ , OPT = text ]
);
CREATE FULLTEXT DICTIONARY dictname [(
{ INIT = funcname |
LEXIZE = funcname |
OPT = text }
[, ... ]
)] LIKE template_dictname;
ALTER FULLTEXT DICTIONARY dictname SET OPT=text;
CREATE FULLTEXT CONFIGURATION cfgname (
PARSER = prsname
[, LOCALE = localename]
) [AS DEFAULT];
CREATE FULLTEXT CONFIGURATION cfgname [(
{ LOCALE = localename |
PARSER = prsname }
[, ...]
)] LIKE template_cfg [WITH MAP] [AS DEFAULT];
ALTER FULLTEXT CONFIGURATION cfgname SET
{ LOCALE=localename | PARSER=prsname } [, ...];
ALTER FULLTEXT CONFIGURATION cfgname SET AS DEFAULT;
ALTER FULLTEXT CONFIGURATION cfgname DROP DEFAULT;
CREATE FULLTEXT MAPPING ON cfgname FOR lexemetypename[, ...]
WITH dictname1[, ...];
ALTER FULLTEXT MAPPING ON cfgname FOR lexemetypename[, ...]
WITH dictname1[, ...];
DROP FULLTEXT MAPPING [IF EXISTS] ON cfgname FOR lexemetypename;
DROP FULLTEXT { DICTIONARY | PARSER | CONFIGURATION } [IF EXISTS] objname [
CASCADE | RESTRICT ];
ALTER FULLTEXT { DICTIONARY | PARSER | CONFIGURATION } objname RENAME TO
newobjname;
ALTER FULLTEXT { DICTIONARY | PARSER | CONFIGURATION } objname OWNER TO
newowner;
COMMENT ON FULLTEXT { DICTIONARY | PARSER | CONFIGURATION } objname IS text;
psql backslesh commands:
\dF [PATTERN] list fulltext configurations (add "+" for more detail)
\dFd [PATTERN] list fulltext dictionaries (add "+" for more detail)
\dFp [PATTERN] list fulltext parsers (add "+" for more detail)
--
Teodor Sigaev E-mail: [EMAIL PROTECTED]
WWW: http://www.sigaev.ru/
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate