Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тормозит запрос, PG 8.3.5 
:(
    Опции темы
tishaishii
Дата 15.12.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 1
Всего: 8



Талблица:
Код

CREATE TABLE "temp" (
  id_price      public.pk NOT NULL,  -- bigint
  word          public.title1024 NOT NULL  -- varchar(1024),
  CONSTRAINT temp_pkey
  PRIMARY KEY (id_price, word)
) WITH (
    OIDS = FALSE
  );

CREATE INDEX temp_idx10
  ON "temp"
  USING gin 
  (to_tsvector('russian'::regconfig, (word)::text));

CREATE INDEX temp_idx11 ON "temp"(word);


Записей ~15e5.

Запрос:
Код

select distinct
    word
from
    temp rt1
where
    to_tsvector('russian', rt1.word)!=to_tsvector('russian', 'САХАР') and
exists(
    select
     1
    from
     temp rt2
    where
     rt2.word like ('САХАР' || '%') and
     rt2.word ~ ('^' || 'САХАР' || '[А-ЯЁA-Z/-]+$') and
     to_tsvector('russian', rt2.word)=to_tsvector(rt1.word)
    limit 1    
)


Ищу по введённому слову предположительные составные слова, например, по слову "САХАР": "САХАРНИЦА", "САХАРИН", "САХАРОЗА", ...
Может, как-то его по-другому сформулировать или индекс какой добавить?

Это сообщение отредактировал(а) tishaishii - 15.12.2009, 17:33
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0392 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.