Please locate source files from /var/www/oddb.org/ext/fulltext/data/dicts/{german|french}/xxx
inte following locations.
And check file permission.
Please implement command for these dictionary creation methods.
ODBA.storage.remove_dictionary('german') ODBA.storage.remove_dictionary('french') ODBA.storage.generate_dictionary('german') ODBA.storage.generate_dictionary('french')
see methods.
ODBA::Storage#remove_dictionary(language) ODBA::Storage#generate_dictionary(language, data_path='/usr/share/postgresql/tsearch_data/', file='fulltext') ODBA::Storage#create_dictionary_map(language)
In oddb.org, Please run this command via bin/admin.
ch.oddb> generate_dictionaries
Or please create dictionaries with SQL, directly. like this.
z.B. default_german
# load extension CREATE EXTENSION tsearch2; # add permission GRANT ALL ON pg_ts_config to USER_NAME; GRANT ALL ON pg_ts_config_map to USER_NAME; GRANT ALL ON pg_ts_dict to USER_NAME; GRANT ALL ON pg_ts_parser to USER_NAME; # create configuration CREATE TEXT SEARCH CONFIGURATION public.default_german ( COPY = pg_catalog.german ); # create ispell dictionary (with above source files) CREATE TEXT SEARCH DICTIONARY german_ispell ( TEMPLATE = ispell, DictFile = german_fulltext, AffFile = german_fulltext, StopWords = german_fulltext ); # setup tokens with ispell and stem dictionaries. ALTER TEXT SEARCH CONFIGURATION default_german ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, word, hword, hword_part, hword_numpart, numword, numhword WITH german_ispell, german_stem; # setup some tokens with simple dictionary. ALTER TEXT SEARCH CONFIGURATION default_german ALTER MAPPING FOR host, file, int, uint, version WITH simple; # drop some tokens from default setting ALTER TEXT SEARCH CONFIGURATION default_german DROP MAPPING FOR email, url, url_path, sfloat, float;
Then please make sure dictionary configuration with ts_debug()
like this.
db=# select * from ts_debug('default_german', 'En Güte zu Hause! Guten Appetit in die Schule'); alias | description | token | dictionaries | dictionary | lexemes -----------+-------------------+---------+-----------------------------+---------------+------------------ asciiword | Word, all ASCII | En | {german_ispell,german_stem} | german_stem | {en} blank | Space symbols | | {} | | word | Word, all letters | Güte | {german_ispell,german_stem} | german_stem | {gut} blank | Space symbols | | {} | | asciiword | Word, all ASCII | zu | {german_ispell,german_stem} | german_ispell | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | Hause | {german_ispell,german_stem} | german_ispell | {hausen,hau,sen} blank | Space symbols | ! | {} | | asciiword | Word, all ASCII | Guten | {german_ispell,german_stem} | german_ispell | {gut} blank | Space symbols | | {} | | asciiword | Word, all ASCII | Appetit | {german_ispell,german_stem} | german_ispell | {appetit} blank | Space symbols | | {} | | asciiword | Word, all ASCII | in | {german_ispell,german_stem} | german_ispell | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | die | {german_ispell,german_stem} | german_ispell | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | Schule | {german_ispell,german_stem} | german_ispell | {schule,schulen} (17 rows)