![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Индексация *.doc файлов
Glum © (2006-05-05 10:30:00)Здравствуйте!
Мне необходимо проиндексировать кучу *.doc файлов для дальнейшей организации поиска по ним.
Какие компоненты мне можно использовать для чтения *.doc файлов и записи данных в MySQL?
georgius (2006-05-23 22:10:00) [1]У меня была аналогичная задача - находить woed-файлы, содержащие определенные слова.
При добавлении или изменении документа делаю что-то типа этого:
uses
word97;
...............................
Word := TWord.Create;
...............................
Word.Open(Name);
Content := Word.GetText;
А Content можешь разбивать на слова и т.д.
У меня поиск получился более эффективным без разбития на слова.
Просто сохранял Content в Memo-поле и применял к нему регулярные выражения.
Shirson (2006-05-11 14:46:00) [2]Glum (06.05.06 22:48) [34]
> 2 Shirson
> Мне нужно реализовать именно такую конструкцию которую вы
> описали. Не могли бы вы поделиться частью своего алгоритма
> индексирования? Или хотябы намекнуть :)
Оно еще надо?
ЛшдлуттнСфе (2006-05-06 23:09:00) [3]низнаю насчет консоли, но есть
C:\Program Files\Common Files\Microsoft Shared\TextConv
Glum (2006-05-06 23:07:00) [4]2 TUser
Огромная благодарность за наводку! Кажется это то что мне нужно. Начинаю писать индексатор на Perl (да простят меня любители Delphi за вероотступничество).
Может кто-нибудь посоветовать эффективный алгоритм? Ато весь инет перерыл и ничего.
Glum (2006-05-06 22:48:00) [5]Тема набирает обороты :)
Немного поясню мою задачу. Имеется большая база рефератов. Необходимо организовать сайт-магазин с возможностью поиска по ним. Раз это магазин, безопасней будет рефераты хранить на отдельной машине (не web-server). Получается что индексатор на одном компе записывает данные о рефератах в БД, а поисковик на другом компе (web-server'e) берет информацию из той же БД и выдает её пользователю.
2 Shirson
Мне нужно реализовать именно такую конструкцию которую вы описали. Не могли бы вы поделиться частью своего алгоритма индексирования? Или хотябы намекнуть :)
2 Сергей М.
Местоположение фрагмента не имеет значения, главное его наличие в файле.
Вообще мне кажется удобней для индексирования использовать Perl - это и проще и быстрее и регулярные выражения рулят, IMHO. Но то что Perl не может работать с doc заставило меня обратиться к Delphi. Сейчас наиболее удобной конструкцией я считаю связку "конвертер doc->txt написанный на Delphi" + "обработчик и индексатор получившегося txt на Perl". А может быть я изобретаю велосипед и конвертеры способные работать из консоли уже есть? Пока что я видел только catdoc, но он работает исключительно под nix.
Сергей М. (2006-05-06 14:16:00) [6]
> Glum (05.05.06 10:30)
Могу предложить COM-сервер WCX (WordConverterX).
Продукт коммерческий, с исх.текстами.
С его помощью быстро и без проблем конвертишь doc-документ в любой из удобных тебе (из числа предлагаемых) текстовых форматов (plain text, html, xml и т.д.), после чего обрабатываешь уже результат конверсии - здесь уже полный простор для творчества.
Shirson (2006-05-06 14:07:00) [7]Offtop
"Лопату верни" (с) анекдот.
Сергей М. (2006-05-06 13:56:00) [8]Если речь идет именно о производительности именно алгоритма поиска, я вообще не вижу смысла задействовать MSWord только лишь потому, что его сотворили сами мелкомягкие.
Семейство устойчивых форматов вордовых документов давно известно, использовать оные по ограниченному назначению не составит великого труда, ну а перспектива появления новых форматов должна подкрепляться условиями саппорта разрабатываемого автором ПО.
Сергей М. (2006-05-06 13:50:00) [9]
> Jeer © (06.05.06 13:46) [29]
> идти штатными средствами MS
Такой выбор может когда-нибудь больно ударить.
Прикладной софт от самой MS, как бы ни был он очевиден в этом плане, зачастую попросту не надежен.
Jeer (2006-05-06 13:46:00) [10]Сергей М. © (06.05.06 13:42) [28]
Не совсем так, а - идти штатными средствами MS.
Сергей М. (2006-05-06 13:42:00) [11]
> Jeer © (06.05.06 13:31) [25]
> Че делаем ?
Нет ничего тайного, что не могло бы стать явным.
Если так рассуждать, то можно сразу мылить веревку.
Я разработал или купил некое прикладное ПО, а завтра MS в очередной столохматой обнове к ОС объявила о прекращении поддержки некоей фичи, без которой работа моего ПО невозможна.
Че делать ?
Правильно - не унывать и заранее предусмотреть варианты сопровождения этого ПО, чтобы такие вот "форс-мажоры" не были чем-то неожиданным.
Jeer (2006-05-06 13:36:00) [12]???
Как скажешь.
Сергей М. (2006-05-06 13:35:00) [13]И для таких случаев Ворд тоже не обязателен.
Jeer (2006-05-06 13:31:00) [14]Сергей М. © (06.05.06 13:06) [22]
Завтра MS вводит шифрацию файлов формата doc.
Че делаем ?
Shirson (2006-05-06 13:19:00) [15]Уже спотыкались.
В бин.файле вы не найдёте ' последовательность' если она отформатирована как тут. Это самый простой пример.
Сергей М. (2006-05-06 13:07:00) [16]Равно как и компонент, его заменяющий.
Сергей М. (2006-05-06 13:06:00) [17]
> Shirson © (06.05.06 12:39) [20]
Для поиска на предмет обнаружения последовательности символов в бин.файле Ворд вообще не нужен.
Shirson (2006-05-06 12:41:00) [18]
> Jeer © (06.05.06 12:39) [19]
> А прочесть между строк ? :)))
> Стелепатировать ?
А зачем? Лучше поспорить ;)
А потом пообсуждать не способ решения вопроса, а способ его постановки.
Shirson (2006-05-06 12:39:00) [19]>Сергей М
Попробую по-другому.
Есть doc файл, в котором нужно проиндексировать содержание.
С этим файлом можно работать самому, использую "третьи компоненты", либо работать через сам Word.
Открывает файл через Word via OLE. Получаем доступ к содержанию этого файла в виде, для начала, текста. Т.е. по минимуму мы получаем просто текст, с которым уже можно работать, применяя к нему любые желаемые алгоритмы поиска.
В случае необходимости позиционирования найденых слов, поиск можно производить не в plain-text, а обращаясь к тексту по-абзацно (механизмом ворда) и производя поиск чем нам хочется в этом куске (получаем позицию вида НомерАбзаца НомерСимвола).
Хотя я на 90% уверен, что автору топика достаточно иметь схему Слово->Файл.
Jeer (2006-05-06 12:39:00) [20]
> А ведь автор ведет речь именно об индексации doc-файлов
> !
А прочесть между строк ? :)))
Стелепатировать ?