Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание полнотекстового индекса через SQL-запрос [D7, MSSQL]


Sergey18 ©   (2004-11-24 11:24:00) 

Есть простая таблица Articles1 (MSSQLServer2000):
1) ArcticleID - Int, primary key, identity
2) ArticleText - Text, not null

Есть несколько просьб-вопросов:

1) Приведите, пожалуйста, пример запроса, который позволил бы
создать полнотекстовый индекс для поля ArticleText. Данные таблицы создаются в run-time программы в большом количестве.

2) Возможно ли через SQL-запрос добавить shedule-задание на full/incremental population/update index?

3) Не будет ли все жутко тормозить, если в базе будет, скажем, около 1000 подобных таблиц, в каждой из которых будет по ~100-200 тысяч записей? Т.е. другими словами, такое разделение планировалось для повышения скорости поиска текста в информации, т.к. в таблице Articles1 - цифра 1 - это номер уникального поля ChapterID таблицы Chapters. Оправданы ли такие действия?


Johnmen   (2004-11-25 10:16:00) [1]

>Sergey18

При наличии полнотекстового индекса поиск с использованием предиката CONTAINS на таблице ~ 200 т.з. и машине типа PIV займет такое количество времени, что ты его не успеешь померить. :) Т.е. сравнимо с обычным поиском по обычному индексированному полю.


Johnmen   (2004-11-25 10:03:00) [2]

>sniknik ©   (24.11.04 18:40) [5]

Примерно так и построена стандартная поддержка полнотекстового поиска. Т.е. строится словарь, индексируются слова и т.д. и т.п.


sniknik   (2004-11-24 18:40:00) [3]

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

добавление текста становиться более проблемным конечно, но поиск самый скоростной. надеюсь понятно обьяснил ;).


Johnmen   (2004-11-24 11:46:00) [4]

BOL - Books Online хелп по MSSQL серверу.


Sergey18   (2004-11-24 11:40:00) [5]

Sergey13 ©
> Не есть хорошо.
Почему?

Johnmen ©
Насколько помню, в BOL есть описание с примерами.
Можно полюбопытствовать, а что такое BOL?

> И конечно же, что бы это (поиск по полнотекстовому индексу) работало, должен быть запущен соответствующий процесс (MSSearch).
Ну, это понятно... Вручную-то, через Enterprise Manager я могу создавать подобное и это даже работает. :) Но, я же не могу, каждый раз при добавлении новой главы и создания таблицы Articles#ChapterID, запускать Enterprise Manager. Это не спортивно как-то. В интернете ничего похожего найти не могу... :(

P.S. Ответы на 2-ой и 3-ий вопрос тоже очень интересны.


Johnmen   (2004-11-24 11:34:00) [6]

Насколько помню, в BOL есть описание с примерами.
И конечно же, что бы это (поиск по полнотекстовому индексу) работало, должен быть запущен соответствующий процесс (MSSearch).


Sergey13   (2004-11-24 11:33:00) [7]

2Sergey18   (24.11.04 11:24)
Батюшки, тезка почти полный. 8-)

Я не знаю MSSQL, но думаю, что

>Данные таблицы создаются в run-time программы в большом количестве.

Не есть хорошо.


Наверх

Титульная страница Поиск, карта сайта Написать письмо