Главная страница
    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.034 c
14-1102416695
vajo
2004-12-07 13:51
2004.12.26
12 декабря - Праздник? Т.Е. 13 декабря - Выходной?


4-1100528405
Maxuz
2004-11-15 17:20
2004.12.26
Запуск внешнего приложения через CreateProcess


3-1101464030
Garry_c
2004-11-26 13:13
2004.12.26
проверка UpdateStatus


1-1102668654
msm
2004-12-10 11:50
2004.12.26
Проблема с TDateTime


6-1097653841
Maxwell
2004-10-13 11:50
2004.12.26
Узнать IP клиентов, подключаемых к idTCPServer





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский