Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос про полнотекстовый поиск / 13 сообщений из 13, страница 1 из 1
04.05.2008, 13:39
    #35292078
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
Добрый день!
Такая проблема возникла - хочу сделать поиск.
создаю таблицу к примеру через phpPgAdmin
create table test1 (i_gid integer, c_text text, v_text tsvector);
выдает ошибку^ ERROR: type "tsvector" does not exist
LINE 1: ...te table test1 (i_gid integer, c_text text, v_text tsvector)
версия postgres 8.2.3
в чем может быть причина?
...
Рейтинг: 0 / 0
04.05.2008, 13:50
    #35292112
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
Полнотекстовый поиск до версии 8.3 надо устанавливать специально. Он не идёт в комплекте с сервером
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
04.05.2008, 13:52
    #35292121
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
понятно. а поподробнее можете ответить? что именно ставить нужно?
...
Рейтинг: 0 / 0
05.05.2008, 00:19
    #35293180
Vladimir Muzhilov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
Из contrib поставить tsearch2
...
Рейтинг: 0 / 0
05.05.2008, 12:44
    #35294091
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
Понятно. Разобрался. Спасибо большое!
...
Рейтинг: 0 / 0
09.10.2008, 01:10
    #35584516
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
Подскажите еще, пожалуйста, почему английские слова ищутся правильно, а русские нет.
например:
SELECT * FROM my_catalogs WHERE v_text @@ to_tsquery('машин а ')
выдает -
id c_text v_text
3 машина 'машина':1
SELECT * FROM my_catalogs WHERE v_text @@ to_tsquery('машин у ')
ничего не выбирает
кодировка utf8, конфигурация такая:

CREATE TEXT SEARCH DICTIONARY mydict_russian_ispell (
TEMPLATE = ispell,
DictFile = russian,
AffFile = russian,
StopWords = russian
);

CREATE TEXT SEARCH CONFIGURATION public.mydict_ru (PARSER = default);
COMMENT ON TEXT SEARCH CONFIGURATION public.mydict_ru IS 'conf. for mydict ru';

ALTER TEXT SEARCH CONFIGURATION mydict_ru ADD MAPPING
FOR email, url, url_path, host, file, version,
sfloat, float, int, uint,
numword, hword_numpart, numhword
WITH simple;

ALTER TEXT SEARCH CONFIGURATION mydict_ru ADD MAPPING
FOR word, hword_part, hword
WITH mydict_russian_ispell;
...
Рейтинг: 0 / 0
09.10.2008, 15:41
    #35585977
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
up
...
Рейтинг: 0 / 0
13.10.2008, 12:30
    #35590976
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
еще раз подниму тему.
...
Рейтинг: 0 / 0
13.10.2008, 13:05
    #35591066
ТТПТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
Чеклист
0. client_encoding правильный ли выставлен?
1. ispell-овские файлы скачаны и положены куда следует?
2. права на их чтение postgres имеет?
3. в UTF-8 ли они?
4. конфигурация FTS по умолчанию какая? select ts_debug('машину') это подтверждает?
...
Рейтинг: 0 / 0
13.10.2008, 13:17
    #35591112
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
ТТПТЧеклист
0. client_encoding правильный ли выставлен?
1. ispell-овские файлы скачаны и положены куда следует?
2. права на их чтение postgres имеет?
3. в UTF-8 ли они?
4. конфигурация FTS по умолчанию какая? select ts_debug('машину') это подтверждает?
0. show client_encoding -> utf8
1. версия postgresql - 8.3, поэтому ispellовский файлы по идее стоят штатно
2. 3. как это проверить?
4. select ts_debug('машину') - >
(word,"Word, all letters",машину,{english_stem},english_stem,{машину})
ага, почему-то english_stem -значит русская конфигурация не сработала?
...
Рейтинг: 0 / 0
13.10.2008, 19:46
    #35592176
intheair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
roma28
1. версия postgresql - 8.3, поэтому ispellовский файлы по идее стоят штатно
2. 3. как это проверить?


1. штатно русские не стоят
если дело в этом, то вам надо сюда POSTGRESQL_SHARE_DIR/tsearch_data
положить файлы
russian_ispell.affix
russian_ispell.dict
в нужной вам кодировке (iconv -f koi8-r -t utf8)
сами файлы можно взять здесь http://wiki.services.openoffice.org/wiki/Dictionaries#Russian_.28Russia.29

2. если смогли создать словарь и добавить его к конфигурации - значит ошибок не было
...
Рейтинг: 0 / 0
14.10.2008, 11:30
    #35592917
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
intheair
1. штатно русские не стоят
если дело в этом, то вам надо сюда POSTGRESQL_SHARE_DIR/tsearch_data
положить файлы
russian_ispell.affix
russian_ispell.dict
в нужной вам кодировке (iconv -f koi8-r -t utf8)
сами файлы можно взять здесь http://wiki.services.openoffice.org/wiki/Dictionaries#Russian_.28Russia.29

2. если смогли создать словарь и добавить его к конфигурации - значит ошибок не было
понятно, спасибо! попробую кинуть туда файлы
...
Рейтинг: 0 / 0
26.10.2008, 21:43
    #35616943
roma28
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про полнотекстовый поиск
Все дело оказалось в том, что конфигурация по умолчанию стояла english
когда в сессии ставлю SET default_text_search_config = 'mydict_ru';
-все нормально работает
ps для тех, кто столкнется с таким же нюансом - чтобы не выставлять каждый раз default_text_search_config, можно один раз отредактировать /var/lib/postgresql/data/postgresql.conf
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос про полнотекстовый поиск / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]