Вниз
Скачать: CL | DM;

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

 
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 вся ветка

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



Память: 0.47 MB
Время: 0.027 c
14-1124952185
DVM
2005-08-25 10:43
2005.09.18
Странный знак на банкноте 100$


5-1099294319
Павел
2004-11-01 10:31
2005.09.18
Получение списка доступных компонент


2-1123831677
webpauk
2005-08-12 11:27
2005.09.18
Автообновление


14-1124525134
BagMaker
2005-08-20 12:05
2005.09.18
Как можно узнать, что компьютер подключен к интернету?


6-1117455483
Flame
2005-05-30 16:18
2005.09.18
proxy




   Наверх