powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск - проблема с вводом данных
3 сообщений из 3, страница 1 из 1
Полнотекстовый поиск - проблема с вводом данных
    #35203027
rkorotovskikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, кто откликнулся на мой вопрос. Очень помогли!
Есть правда еще одна проблема:
Я создал таблицу, настроил полнотекстовый поиск по ней:
CREATE TABLE t_catalog (id serial, text text, vect_text tsvector);

CREATE INDEX t_catalog_id_idx ON t_catalog(id);
CREATE INDEX t_catalog_text_idx ON t_catalog(text);

CREATE OR REPLACE FUNCTION t_catalog_ins() RETURNS trigger AS $$
BEGIN
NEW.vect_text = to_tsvector(NEW.text);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER t_catalog_ins_trigger BEFORE INSERT OR UPDATE ON t_catalog
FOR EACH ROW EXECUTE PROCEDURE t_catalog_ins();

проверил - все замечательно работает, но на некотором этапе при добавлении текста появляется ошибка примерно такого содержания: "размер строки индекса 6104 превышает максимум B-дерева 2712". Проверил - вставляю текст чуть меньше - работает! Как мне быть, можно ли как-нибуть индексировать блоки текста большей длины?
Очень буду признателен за помощь!
...
Рейтинг: 0 / 0
Полнотекстовый поиск - проблема с вводом данных
    #35203289
MoroZ.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я думаю, что здесь все-таки надо использовать не простой, а GiN или GiST индексы.


Попробуйте вместо команды

CREATE INDEX t_catalog_text_idx ON t_catalog(text);

использовать команду

CREATE INDEX t_catalog_text_idx ON t_catalog USING gin (vect_text); -- Используется GiN-индекс

или

CREATE INDEX t_catalog_text_idx ON t_catalog USING gist (vect_text); -- Используется GiST-индекс

Рекомендации здесь такие: GiST лучше использовать для обновляемых данных, а GiN - для статичных архивов.



Статья о полнотекстовом поиске Олега Бартунова на русском языке лежит здесь
http://www.sai.msu.su/~megera/postgres/talks/fts_pgsql_intro.html .
...
Рейтинг: 0 / 0
Полнотекстовый поиск - проблема с вводом данных
    #35203807
MoroZ.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И вообще индекс для поля text не нужен. Уберите строку

CREATE INDEX t_catalog_text_idx ON t_catalog(text);

Используйте индексы GiN и GiST для поля vect_text.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск - проблема с вводом данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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