Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
3-1101388631
Bless
2004-11-25 16:17
2004.12.26
q.FilterGroup:=fgPredicate Как этим пользоваться?


4-1100161077
Maclaud
2004-11-11 11:17
2004.12.26
Пауза меньше 1 милисекунды


1-1102677605
AlexArt
2004-12-10 14:20
2004.12.26
Акселератор


14-1102416124
Ega23
2004-12-07 13:42
2004.12.26
О Московском Комсомольце


4-1100029238
redlord
2004-11-09 22:40
2004.12.26
размер кластера HDD




   Наверх