Обсуждение: ERROR: text search configuration "pg_catalog.english" does not exist
Hi, I am trying to configure Full Text Search on PostgreSQL 8.3 but I seem to be missing pg_catalog.english as I get the follow when I try and do this:
ALTER TABLE useraccounts_contact ADD COLUMN notes_tsv tsvector;
CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE ON useraccounts_contact FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger(body_tsv, 'pg_catalog.english', notes);
CREATE INDEX useraccounts_contact_entry_tsv ON useraccounts_contact USING gin(notes_tsv);
UPDATE useraccounts_contact SET notes_tsv =to_tsvector(notes);
Error:
ERROR: text search configuration "pg_catalog.english" does not exist
SQL state: 42704
In my postgresql.conf I have the following:
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
Thanks in advance.
Tim Child
Tim Child wrote: > Hi, I am trying to configure Full Text Search on PostgreSQL 8.3 but I > seem to be missing pg_catalog.english as I get the follow when I try and > do this: > tsvector_update_trigger(body_tsv, 'pg_catalog.english', notes); > Error: > > ERROR: text search configuration "pg_catalog.english" does not exist > SQL state: 42704 The \dF commands show your settings (in psql) - what does \dF show for you? You might want to check your dictionaries are all there with \dFd too. -- Richard Huxton Archonet Ltd
Tim Child <tim@timc3.com> writes: > Hi, I am trying to configure Full Text Search on PostgreSQL 8.3 but I > seem to be missing pg_catalog.english as I get the follow when I try > and do this: That's odd ... what *do* you have in pg_ts_config? It should look about like this, in a virgin database: postgres=# select * from pg_ts_config; cfgname | cfgnamespace | cfgowner | cfgparser ------------+--------------+----------+----------- simple | 11 | 10 | 3722 danish | 11 | 10 | 3722 dutch | 11 | 10 | 3722 english | 11 | 10 | 3722 finnish | 11 | 10 | 3722 french | 11 | 10 | 3722 german | 11 | 10 | 3722 hungarian | 11 | 10 | 3722 italian | 11 | 10 | 3722 norwegian | 11 | 10 | 3722 portuguese | 11 | 10 | 3722 romanian | 11 | 10 | 3722 russian | 11 | 10 | 3722 spanish | 11 | 10 | 3722 swedish | 11 | 10 | 3722 turkish | 11 | 10 | 3722 (16 rows) postgres=# regards, tom lane
If I do \dF: Schema | Name | Description ------------+--------+---------------------- pg_catalog | simple | simple configuration (1 row) \dFd: Schema | Name | Description ------------+-------- +----------------------------------------------------------- pg_catalog | simple | simple dictionary: just lower case and check for stopword And for select * from pg_ts_config the only row shows: simple |11 | 10 | 3722 Is there away of getting the extra catalogues in? Thanks, Tim. On 11 Mar 2008, at 22:25, Tom Lane wrote: > Tim Child <tim@timc3.com> writes: >> Hi, I am trying to configure Full Text Search on PostgreSQL 8.3 but I >> seem to be missing pg_catalog.english as I get the follow when I try >> and do this: > > That's odd ... what *do* you have in pg_ts_config? It should look > about like this, in a virgin database: > > postgres=# select * from pg_ts_config; > cfgname | cfgnamespace | cfgowner | cfgparser > ------------+--------------+----------+-----------
Tim Child <tim@timc3.com> writes: > If I do \dF: > Schema | Name | Description > ------------+--------+---------------------- > pg_catalog | simple | simple configuration > (1 row) Huh. Seems like initdb forgot to install all the Snowball stemmers. What do you find in $SHAREDIR/snowball_create.sql? (If you're not sure where your SHAREDIR is, pg_config --sharedir will tell you.) Where did this build of Postgres come from, anyway? regards, tom lane
Tim Child <tim@timc3.com> writes: > In my snowball_create.sql I find: > -- No language-specific snowball dictionaries, for lack of shared > library support Really!? > This build comes from postgresqlformac.com the "Unified Installer - > 8.3.0 (PostgreSQLforMac)" Hm, do they have plpgsql or any of the other PLs? It's hard to credit that anyone would put out a build without shared library support. There's too much functionality that goes missing. > Now I am considering that it might have been better to compile my own, > but before I do this is there anyway to get the libraries / > dictionaries installed? What you need is a non-lobotomized build. You should be able to fix the problem without re-initdb, if you need to, by running the real snowball_create.sql script against each of your databases. regards, tom lane
Tim Child <tim@timc3.com> writes: > There is a file here with the same name: > /Library/PostgreSQL8/lib/postgresql/plpgsql.so What else is in that directory? If you don't have dict_snowball.so it's not gonna work. > So I could try and run that snowball_create.sql script from src (which > I have downloaded) and try and get the required functionality? What I suspect at this point is that postgresqlformac.com hack up the build process for .so's in some weird way, and that they neglected to apply their hack to the Snowball stemmer library. You should report that to them as a bug in their packaging. regards, tom lane
Tim Child <tim@timc3.com> writes: > There is other things in that directory including dict_snowball.so Well, that's even stranger. It's real hard to see how the src/backend/snowball Makefile would have built dict_snowball.so and not built the correct version of snowball_create.sql. Anyway, if you can get the correct snowball_create.sql script from another machine, you should be able to limp along. regards, tom lane
There is other things in that directory including dict_snowball.so ascii_and_mic.so latin2_and_win1250.so utf8_and_big5.so utf8_and_gbk.so cyrillic_and_mic.so latin_and_mic.so utf8_and_cyrillic.so utf8_and_iso8859.so dict_snowball.so pgxs utf8_and_euc_cn.so utf8_and_iso8859_1.so euc_cn_and_mic.so plperl.so utf8_and_euc_jis_2004.so utf8_and_johab.so euc_jis_2004_and_shift_jis_2004.so plpgsql.so utf8_and_euc_jp.so utf8_and_shift_jis_2004.so euc_jp_and_sjis.so plpython.so utf8_and_euc_kr.so utf8_and_sjis.so euc_kr_and_mic.so pltcl.so utf8_and_euc_tw.so utf8_and_uhc.so euc_tw_and_big5.so utf8_and_ascii.so utf8_and_gb18030.so utf8_and_win.so I have already put in a bug report to them, but have no idea how active the maintainer is in building new versions. Thanks, Tim On 12 Mar 2008, at 18:04, Tom Lane wrote: > Tim Child <tim@timc3.com> writes: >> There is a file here with the same name: >> /Library/PostgreSQL8/lib/postgresql/plpgsql.so > > What else is in that directory? If you don't have dict_snowball.so > it's not gonna work. > >> So I could try and run that snowball_create.sql script from src >> (which >> I have downloaded) and try and get the required functionality? > > What I suspect at this point is that postgresqlformac.com hack up the > build process for .so's in some weird way, and that they neglected to > apply their hack to the Snowball stemmer library. You should report > that to them as a bug in their packaging. > > regards, tom lane
There is a file here with the same name: /Library/PostgreSQL8/lib/postgresql/plpgsql.so So I could try and run that snowball_create.sql script from src (which I have downloaded) and try and get the required functionality? That would be the easiest for now. On the production system I will compile my own PostgreSQL but for now I wanted a minimum of fuss setup ;-) Thanks again for all the help. Tim. On 12 Mar 2008, at 17:03, Tom Lane wrote: > Tim Child <tim@timc3.com> writes: >> In my snowball_create.sql I find: >> -- No language-specific snowball dictionaries, for lack of shared >> library support > > Really!? > >> This build comes from postgresqlformac.com the "Unified Installer - >> 8.3.0 (PostgreSQLforMac)" > > Hm, do they have plpgsql or any of the other PLs? It's hard to credit > that anyone would put out a build without shared library support. > There's too much functionality that goes missing. > >> Now I am considering that it might have been better to compile my >> own, >> but before I do this is there anyway to get the libraries / >> dictionaries installed? > > What you need is a non-lobotomized build. You should be able to fix > the > problem without re-initdb, if you need to, by running the real > snowball_create.sql script against each of your databases. > > regards, tom lane
In my snowball_create.sql I find:
-- No language-specific snowball dictionaries, for lack of shared library support
This build comes from postgresqlformac.com the "Unified Installer - 8.3.0 (PostgreSQLforMac)"
Now I am considering that it might have been better to compile my own, but before I do this is there anyway to get the libraries / dictionaries installed?
Thanks again,
Tim
On 12 Mar 2008, at 16:07, Tom Lane wrote:
Tim Child <tim@timc3.com> writes:If I do \dF:Schema | Name | Description------------+--------+----------------------pg_catalog | simple | simple configuration(1 row)
Huh. Seems like initdb forgot to install all the Snowball stemmers.
What do you find in $SHAREDIR/snowball_create.sql? (If you're not
sure where your SHAREDIR is, pg_config --sharedir will tell you.)
Where did this build of Postgres come from, anyway?
regards, tom lane