Название: SearchEngine на C++ Отправлено: Max Payne от Ноябрь 24, 2010, 04:16 Есть приложение - учебник электронный, который поддерживает отображение текстового контента, проигрывание видеофайлов , пдф-книги и т.д. Задача - нужно написать модуль , который сможет заполнять контентом базу приложения (приложение использует базу данных, и спец формат текстовых файлов, и каждый файл привязан к ключевому слову, то есть как к индексу для поиска по слову). Например : имеем папку с всяким содержимым (*.тхт, *.pdf, *.doc, *.docx, *.html и т .д) мне нужно к ключевому слову (к примеру "класс") привязать файлы и добавить их в базу, модуль должен просмотреть все файлы в папке, вывести список файлов в которых встречается слово "класс" , вывести статистику сколько раз это слово используется в текущем файле (и при необходимости скажем при выделении или двойном щелчке просмотреть этот файл), и если я ставлю скажем галочку в чекБоксе напротив некоторых файлов, эти файлы (переделываються в формат необходимый ,если это *.тхт ) и копируются в директорию программы и добавляются в базу. Тоесть просто перелопачивание всего содержимого папки сортировка по типу и поиск в файлах ключевого слова...
Хух... Вот так вроде... Вопрос : все необходимо писать с нуля (но писать то прилично надо будет) , может кто встречал подобный системы searchEngine к примеру Lucene, или может кто посоветует с чего начать? Название: Re: SearchEngine на C++ Отправлено: crossly от Ноябрь 24, 2010, 10:13 так а Lucene не подходит??
Название: Re: SearchEngine на C++ Отправлено: Denjs от Ноябрь 24, 2010, 12:19 DataparkSearch Engine ? http://www.dataparksearch.org/
я его использую для текстового поиска на сайте и в каталогах файлов "расшаренных" через http (подключил туда локальные smb-ресурсы, и признаться очень рад жизни)))) Помимо этого, он умеет работать с ftp, и вообще с много чем ещё - может индексировать вплоть до консольного вывода программы. Есть механизм подключения парсеров (для разбора на слова всяких pdf, doc, xls и др). Можно подключить словари для поиска с учетом окончаний и т.п. Есть механизм интеграции с С/С++ приложением. Где-то даже кажется видел схему базы данных (в случае использования с MySQL). Помимо этого понимает ещё с пяток баз данных, включая собственную (объявлена что самая быстрая,как я понимаю потому, что ни на что другое не способна, кроме как обслуживания поиска и запросов из DataparkSearch). С Мускулем запрос по базе данных занимающей около 2.5 гигов занимает пару секунд (и это все крутится в условиях виртуального сервера с ограниченными ресурсами). Единственный минус (для меня) - я пока не понял как его заставить искать в частях слов... но на фоне остального это, имхо, терпимо. Открытые исходники (смотри, разбирайся, учись). Написан на С/С++ (хотя может и на простом Си) Возможно что Linux-only (последнее не уточнял - у мну линукс и мне на венду по*** ;D ) Название: Re: SearchEngine на C++ Отправлено: Max Payne от Ноябрь 24, 2010, 20:37 Denjs - спасибо , но :
На даенный момент известно об успешных установках DataparkSearch на следующих опреационных системах: CentOS 3.1, CentOS 3.3 Debian GNU/Linux (Lenny, Etch) (i386) FreeBSD 2.2.x, 3.x, 4.x, 5.x, 6.x, 7.0 Linux Fedora Core-1, Kernel 2.4.22-1.2174 Linux Mandrake 10.2 Linux Red Hat 8.0, 9.0 Solaris 9 Solaris 10 x86, gcc Ubuntu Linux 6.10, 7.x, 8.x, 9.04 (i386 and amd) Gentoo Linux 2007.0 amd64 OpenBSD 4.5 (i386) Пока что двигатель работает только на юникс подобных системах. Я пишу пока под виндой и тут трабл, так что вариант не плохой но не подходит. Название: Re: SearchEngine на C++ Отправлено: Max Payne от Ноябрь 24, 2010, 20:42 Цитировать так а Lucene не подходит?? Я пока только просматриваю этот вариант , и ищу пока альтернативу, чтоб можна было хотя бы сравнить. Я рылся в поисковике гугл, что то ничего внятного не нашел. Кто знает или может ссылочку где можно почитать, побольше о движке Lucene, или документация, желательно на русском язике. :/ Если я не ошибаюсь он тоже под юникс писался. Есть ли интегратор под С/С++ ? Название: Re: SearchEngine на C++ Отправлено: crossly от Ноябрь 24, 2010, 21:24 Цитировать Есть ли интегратор под С/С++ ? CLucene.... в Qt есть QtCLucene....Название: Re: SearchEngine на C++ Отправлено: Max Payne от Ноябрь 26, 2010, 09:41 Ясн ищу, читаю, разбираюсь. Спасибо, хотя инфы что то маловато, если я правильно понял, эта библиотека появилась с Qt4.x
Но на офф сайте я ничего не нашел... =( Название: Re: SearchEngine на C++ Отправлено: crossly от Ноябрь 26, 2010, 11:05 в документации ее нету... т.к. это внутренняя библиотека Qt... но никто не запрещает ее использовать...
Название: Re: SearchEngine на C++ Отправлено: Max Payne от Ноябрь 26, 2010, 14:36 Ну а где можно почитать о ее функциях , о возможностях, как использовать... Ну с чего то надо же надо начать.. Ее надо скачать? Так как я скачал набор библиотек с Qt 4.7 и эту библиотеку так и не нашел. Подскажите пож. кто ее использовал как юзать, а то даже инклуд ее не видит.
Название: Re: SearchEngine на C++ Отправлено: Denjs от Ноябрь 26, 2010, 14:41 Так как я скачал набор библиотек с Qt 4.7 ... значит у вас должен быть и QAssistant. в нем и смотрите. это подсистема помощи по QT.Если вы конечно скачивали SDK ("Qt SDK: Complete Development Environment") а не просто набор библиотек ("Qt: Framework Only"). Название: Re: SearchEngine на C++ Отправлено: crossly от Ноябрь 26, 2010, 15:18 Так как я скачал набор библиотек с Qt 4.7 ... значит у вас должен быть и QAssistant. в нем и смотрите. это подсистема помощи по QT.Если вы конечно скачивали SDK ("Qt SDK: Complete Development Environment") а не просто набор библиотек ("Qt: Framework Only"). Название: Re: SearchEngine на C++ Отправлено: Max Payne от Ноябрь 26, 2010, 21:20 Тоесть, Надо вручную на свой страх и риск, копаться, и надеяться что что то пойму? Дам перспективка, работы только расчехлятся в коде на пару месяцев ??? ???.
Название: Re: SearchEngine на C++ Отправлено: kogemrka от Ноябрь 27, 2010, 13:10 CLucene
Название: Re: SearchEngine на C++ Отправлено: Max Payne от Ноябрь 29, 2010, 00:12 kogemrka
О спасибо, мой не многословный друг... А более какого то широкого описания нету? Я покопался кое что нарыл : если я правильно понял то почти все поисковики полнотекстовые создают таблицу с позициями каждого слова, но это если пользователь постоянно пользуеться поиском. У меня задача один раз найти по слову, добавить файл или переписать его если мне он подходит, и забыть. Тогда возникает логический вопрос зачем мне вообще создавать такую таблицу с данными? И еще есть ли готовые модули для чтения документов (*.doc, *.docx, *.html, *.chm, *.pdf(текстовые) *.txt, *.cpp) или все таки ручками писать придется все с нуля? Не то чтоб это сложно просто кода многовато, а если есть готовые примеры, ил что то в этом роде, то грех не использовать :) |