Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1101965139
janb
2004-12-02 08:25
2004.12.26
MyODBC driver


4-1100009768
Anonimus
2004-11-09 17:16
2004.12.26
Миниатюра как для файлов Фотошопа


3-1101637166
GanibalLector
2004-11-28 13:19
2004.12.26
ОСТАТКИ товара


4-1100510145
Shc
2004-11-15 12:15
2004.12.26
Изменение ресурсов


1-1102972333
STK
2004-12-14 00:12
2004.12.26
Загруженность процессора(100%) процессом(как облегчить)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский