Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

Оболочка для вопросов-ответов   Найти похожие ветки 

 
lkz   (2005-08-27 20:16) [0]

Имеется рассылка типа "вопросы-ответы". Накопилось уже достаточно много вопросов и ответов, хотелось бы создать некую оболочку для обработки всех этих данных. Также с выходом нового номера рассылки будут новые вопросы и новые ответы. Все эти "новинки" тоже надо "прицеплять" к проге для их индексации и последующей обработке. Что посоветуете использовать? Это все можно реализовать только через БД? Тогда как лучше это реализовать? Заранее большое спасибо.


 
Anatoly Podgoretsky ©   (2005-08-27 21:37) [1]

MS SQL Server + FullText Search


 
Abonentden   (2005-08-27 21:57) [2]

Анатолий, а где подробнее бы почитать про связку MS SQL и Delphi?


 
lkz   (2005-08-27 21:58) [3]

Анатолий, а где подробнее бы почитать про связку MS SQL и Delphi?


 
Наиль ©   (2005-08-27 22:23) [4]

Мой способ не самый лучший. Но даёт хорошие результаты.
Так как, для быстрого поиска необходимо индексировать данные, то я разбиваю данные в несколько файлов. В первом храняться слова. Во втором индексы этих слов. В третьем сами вопросы-ответы в обработаном виде. В чётвёртом оригиналы.
Слова храняться в таком виде:
Длина слова, Слово, Номер, Длина слова, Слово, Номер ...
Номер не порядковый, а уникальный. Слово заглавными буквами.
Индексы:
Адрес первого слова, Адрес второго слова и т.д. по алфавиту.
Вопросы и ответы:
кол-во слов в первом тексте, номер слова, номер слова и т.д.,
кол-во слов во втором тексте, номер слова, номер слова и т.д., ...
При этом номера слов отсортированы и не повторяются.
1) Поиск получется похожим на поиск в Help"е.
Пишешь слово поиска. Бинарным поиском (бп) определяется слова номер в словаре. Далее бп находишь в каких текстах используется этот номер. По номеру текста находишь оригинал.
2) Дольше по части слова. Полным перебором находишь в словаре слова в которые входит указаная часть. Получаешь массив номеров слов. Далее для каждого числа находишь свои тексты. Выдаёшь на экран.
Но чаще я использую упрощёную схему без индексации.
TStringList.Sorted и Add, позволяют написать такую программу за пару часов.


 
Anatoly Podgoretsky ©   (2005-08-27 22:54) [5]

Если пойдешь на MS SQL то надо не ниже версии 2005, поскольку полнотекстовый поиск по русским словам только в ней будет.
Читать не знаю, что и посоветовать, слишком много информации.
Просто твоя задача хорошо формализуется с помощью БД и тебе обязателен полнотекстовый поиск. Не считая конечно нормальной струтиризации данных. Не полнотекстовый поиск обеспечивается любой базой.


 
Anatoly Podgoretsky ©   (2005-08-27 22:57) [6]

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


 
Наиль ©   (2005-08-27 23:08) [7]

Забыл сказать, почему мой способ не самый лучший.
При использовании файлов собственных форматов, приходится заботится об индексации и поиске, а это отнимает время на разработку.
При использовании баз данных заботится об этом не приходиться. Алгоритм остаётся тем же.

PS. Подобные программы пишу только для себя. Поэтому пишу без БД, используя TStringList. Немножко, притормаживает (7000 файлов), но зато минимум времени на разработку, и я имею нужный мне результат.



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

Форум: "Основная";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
14-1124728464
programania
2005-08-22 20:34
2005.09.18
Броузер для экономии трафика


4-1122537737
chili
2005-07-28 12:02
2005.09.18
Изменение частоты обновления экрана ?


3-1123231655
Elvis
2005-08-05 12:47
2005.09.18
DBGridEh забитый в ручную


14-1124685345
Dreamse
2005-08-22 08:35
2005.09.18
Dialogic and Delphi


3-1123503982
stud
2005-08-08 16:26
2005.09.18
вопрос по мс sql server 2000





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