Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

Создание полнотекстового индекса через SQL-запрос   Найти похожие ветки 

 
Sergey18   (2004-11-24 11:24) [0]

Есть простая таблица 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. Оправданы ли такие действия?


 
Sergey13 ©   (2004-11-24 11:33) [1]

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

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

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

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


 
Johnmen ©   (2004-11-24 11:34) [2]

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


 
Sergey18   (2004-11-24 11:40) [3]

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

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

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

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


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

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


 
sniknik ©   (2004-11-24 18:40) [5]

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

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


 
Johnmen ©   (2004-11-25 10:03) [6]

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

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


 
Johnmen ©   (2004-11-25 10:16) [7]

>Sergey18

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



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
1-1102537074
Zahar
2004-12-08 23:17
2004.12.26
Помогите с регулярным выражением


4-1100180548
sirsergio
2004-11-11 16:42
2004.12.26
OnKeyPress и сообщения


1-1102849985
speed
2004-12-12 14:13
2004.12.26
select ... listbox


1-1102487167
dimqua
2004-12-08 09:26
2004.12.26
DBCombobox


4-1099992720
syte_ser78
2004-11-09 12:32
2004.12.26
версия файла