2015-12-10 2 views
1

Я создал конфигурацию поиска текста на моем сервере PostgreSQL 9.3.5, как это следующая документация PostGreSQL:Postgresql отсутствует текст конфигурация поиска

CREATE TEXT SEARCH CONFIGURATION french_noaccent (COPY = french); 
ALTER TEXT SEARCH CONFIGURATION french_noaccent ALTER MAPPING FOR hword, hword_part, word WITH unaccent, french_stem; 

Я использую это уже один из моей базы данных проекта Django и можно увидеть с помощью \ ДФ:

Schéma |  Nom  |    Description    
------------+------------------+--------------------------------------- 
pg_catalog | danish   | configuration for danish language 
pg_catalog | dutch   | configuration for dutch language 
pg_catalog | english   | configuration for english language 
pg_catalog | finnish   | configuration for finnish language 
pg_catalog | french   | configuration for french language 
pg_catalog | german   | configuration for german language 
pg_catalog | hungarian  | configuration for hungarian language 
pg_catalog | italian   | configuration for italian language 
pg_catalog | norwegian  | configuration for norwegian language 
pg_catalog | portuguese  | configuration for portuguese language 
pg_catalog | romanian   | configuration for romanian language 
pg_catalog | russian   | configuration for russian language 
pg_catalog | simple   | simple configuration 
pg_catalog | spanish   | configuration for spanish language 
pg_catalog | swedish   | configuration for swedish language 
pg_catalog | turkish   | configuration for turkish language 
public  | french_noaccent | 
public  | spanish_noaccent | 

Однако, когда я пытаюсь использовать его на другой базе данных проекта (по-прежнему на том же сервере), я получаю эту ошибку

text search configuration "public.french_noaccent" does not exist 
LINE 1: ...rank_cd(watson_searchentry.search_tsv, to_tsquery('public.fr... 

(К сожалению, я не знаю, как получить полную строку: /)

ли кто-то любая идея, почему это так, и как я могу сделать мой поиск текста конфигурации доступны на 2-й базе данных?

Большое спасибо

Edit (благодаря @doru): Я создал поиска текста конфигурации с использованием учетной записи суперпользователя, но моя база данных проектов есть собственный владелец, когда я использую \ ДФ с этой учетной записью смогу «Посмотри их в списке. Я попробовал

ALTER TEXT SEARCH CONFIGURATION french_noaccent OWNER TO myuser; 

но все еще не может их видеть. Так что я попытался это с моей пользовательской учетной записи:

myuser=> CREATE TEXT SEARCH CONFIGURATION french_noaccenttst (COPY = french); 
CREATE TEXT SEARCH CONFIGURATION 
myuser=> ALTER TEXT SEARCH CONFIGURATION french_noaccenttst ALTER MAPPING FOR hword, hword_part, word WITH unaccent, french_stem; 
ERROR: text search dictionary "unaccent" does not exist 

Так что я думаю, мой вопрос в том, как я могу сделать unaccent словарь доступен для моего пользователя?

+0

Если вы запустите 'SHOW default_text_search_config;' что вы получите? – doru

+0

default_text_search_config ---------------------------- pg_catalog.simple Но в обоих моих проектах я рассказываю postgres, чтобы использовать публику. french_noaccent text config – mrequillart

+0

Вы сделали 'SET default_text_search_config = 'public.french_noaccent';'? – doru

ответ

2

Итак, я, наконец, получил его работу и думаю, что смогу объяснить, почему.

В какой-то момент я проверил разрешение моего пользователя на моих баз данных с помощью \ дп +

На первом (тот, который работал отлично) я имел:

      Liste des schémas 
      Nom    | Propriétaire | Droits d'accès | Description 
      public    | myuser  | root=UC/root + 
               =UC/root  | standard public schema 

и на второй один (который не работал)

      Liste des schémas 
      Nom    | Propriétaire | Droits d'accès | Description 
      public    | myuser  |    | standard public schema 

Так что я получил доступ к публичной схеме укоренить в соответствии с первым configurati на, используя MyUser:

myuser=> grant usage on schema public to root; 
myuser=> grant create on schema public to root; 

          Liste des schémas 
      Nom    | Propriétaire | Droits d'accès | Description 
      public    | myuser  | myuser=UC/myuser +|standard public schema 
               root=UC/myuser | 

Не совсем то же самое, но она должна работать, моя конфигурация поиска текста еще не был доступен с \ йР, но давайте посмотрим, если unaccent модуль доступен с \ DFD

    Liste des dictionnaires de la recherche de texte 
    Schéma |  Nom  |      Description       
------------+-----------------+----------------------------------------------------------- 
pg_catalog | danish_stem  | snowball stemmer for danish language 
pg_catalog | dutch_stem  | snowball stemmer for dutch language 
pg_catalog | english_stem | snowball stemmer for english language 
pg_catalog | finnish_stem | snowball stemmer for finnish language 
pg_catalog | french_stem  | snowball stemmer for french language 
pg_catalog | german_stem  | snowball stemmer for german language 
pg_catalog | hungarian_stem | snowball stemmer for hungarian language 
pg_catalog | italian_stem | snowball stemmer for italian language 
pg_catalog | norwegian_stem | snowball stemmer for norwegian language 
pg_catalog | portuguese_stem | snowball stemmer for portuguese language 
pg_catalog | romanian_stem | snowball stemmer for romanian language 
pg_catalog | russian_stem | snowball stemmer for russian language 
pg_catalog | simple   | simple dictionary: just lower case and check for stopword 
pg_catalog | spanish_stem | snowball stemmer for spanish language 
pg_catalog | swedish_stem | snowball stemmer for swedish language 
pg_catalog | turkish_stem | snowball stemmer for turkish language 
public  | unaccent  | 

Так что я воссоздал мой текст поиска конфигурации, используя первые 2 команды из моего первоначального поста, только на этот раз я сделал это с помощью MyUser счет на моей базе данных багги

myuser=> CREATE TEXT SEARCH CONFIGURATION french_noaccenttst (COPY = french); 
myuser=> ALTER TEXT SEARCH CONFIGURATION french_noaccenttst ALTER MAPPING FOR hword, hword_part, word WITH unaccent, french_stem; 

И на этот раз он работал большой, и они появились в \ йР

 Liste des configurations de la recherche de texte 
    Schéma |  Nom  |    Description    
------------+------------------+--------------------------------------- 
pg_catalog | danish   | configuration for danish language 
pg_catalog | dutch   | configuration for dutch language 
pg_catalog | english   | configuration for english language 
pg_catalog | finnish   | configuration for finnish language 
pg_catalog | french   | configuration for french language 
pg_catalog | german   | configuration for german language 
pg_catalog | hungarian  | configuration for hungarian language 
pg_catalog | italian   | configuration for italian language 
pg_catalog | norwegian  | configuration for norwegian language 
pg_catalog | portuguese  | configuration for portuguese language 
pg_catalog | romanian   | configuration for romanian language 
pg_catalog | russian   | configuration for russian language 
pg_catalog | simple   | simple configuration 
pg_catalog | spanish   | configuration for spanish language 
pg_catalog | swedish   | configuration for swedish language 
pg_catalog | turkish   | configuration for turkish language 
public  | french_noaccent | 
public  | spanish_noaccent | 

Наконец \ о/

Я не знаю, почему это привилегии доступа, где глючит, но я думаю, что это происходит от AWS RDS: при запуске экземпляра RDS я попросил создать пользователя с виновной базой данных. Это может быть что-то еще, но я думаю, что это единственная разница между двумя базами данных.

Извините за длинный пост, но в конце концов это только краткое изложение моего обеда: D

+0

Я не думаю, что есть необходимость в ненормативной лексике. – DavidG

+0

Это не одно я, пожалуй, почему-то французский, поэтому мне нравится проклинать. Я не понимаю, почему вы заботитесь. – mrequillart

+0

Половина моей семьи родом из страны, которая ругается в 10 раз больше, чем французов, но я до сих пор знаю, когда это хорошая идея, чтобы избежать использования таких слов. Мне все равно, потому что я забочусь о том, чтобы этот сайт был чистым, а также [согласился, что мы их не используем] (http://meta.stackexchange.com/questions/22232/в-ругательств-Материться-бранные слова или-вульгарный язык разрешенному-на-SE-сайтов).Я уверен, что вы уже знаете, что использование вульгарного языка считается плохим. – DavidG

Смежные вопросы