Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
ВнизСоздание полнотекстового индекса через 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.05 c