Hello! On Thursday 12 November 2009 12:24:53 Иван Лох wrote: > On Thu, Nov 12, 2009 at 10:21:57AM +0300, Alexey Pechnikov wrote: > > Hello! > > > > On Wednesday 11 November 2009 15:07:36 Stanislav Vlasov wrote: > > > Если заменить mnogosearch - на что из того, что умеет индексировать не > > > всё за раз (localhost - это ноут, который может быть выключен хотя бы > > > потому, что его выдернули из розетки и забыли воткнуть обратно)? > > > > И всего-то надо скрипт для рекурсивного обхода директорий, набор > > фильтров и SQLite с модулем FTS3. > > По уму, он еще должен индексировать mbox (и хорошо бы IMAP ящики), > использовать > inotify и не индексировать при высокой загрузке дисковой подсистемы.
В чем сложности? inotify прикрутить так: set io [open "|inotifywait --monitor --event close_write --event moved_to --event delete_self --format \"%e %w%f\" $queuedir" r] while {[gets $io line]} { ... Для индексации mbox - добавить фильтр преобразования mbox и plain text. Можно взять как образец скрипт /usr/bin/mbox2maildir Для imap - запускайте по крону какой-нибудь из клиентов синхронизации и потом индексируйте тот же mbox. > Еще он должен > создавать user/group специфичные базы на основании прав доступа для > совместного > использования. Запустите демон с нужными правами, получить базы, созданные от имени того же юзера. Предпочитаю иметь некоторый набор поисковых баз, вместо одной с разделением доступа. Удобнее запускать несколько демонов, передавая аргументы в командной строке, нежели один с огромным конфигом, да еще без возможности перетащить нужную базу на другой хост. Проверить загрузку дисков можно по-разному, если скажете, какой способ вам более по душе, могу предложить реализацию. Собственно, тот скрипт, что у меня выложен, используется для индексации набора документов порядка гигабайта и база с поисковым индексом интегрирована с веб-порталом. Переиндексируется минут за 10 по крону раз в сутки. > Если все это сделать, то получится tracker или beagle. А если сделать, так, > чтобы > это еще и работало -- вообще будет красота. Это примеры для подражания?.. tracker на ноуте во время индексации нагружает диск так, что все остальное перестает работать. Запустить несколько экземпляров нельзя, поскольку к DBUS привязан, а на сервере вовсе не работает по той же причине. Более того, поисковые запросы тоже через DBUS идут к демону-индексатору... Про фильтры молчу, поскольку видел и более убогие. Про интеграцию с чем-либо и восе речи нет. Хоть и хранится поисковый индекс в SQLite-базе, но напрямую работать с ним невозможно, т.к. требуются внутренние функции tracker для доступа к данным. beagle на c# сделан, что уже много о чем говорит. Равно как использовать порт Lucene вместо С-библиотеки тоже сомнительное достижение. Вместо использования стандартных утилит какие-то самопальные фильтры на том же сишарпе... Поисковый индекс в собственном формате, что делает его фактически бесполезным. Явный виндовый комбайн, "вещь в себе". Best regards, Alexey Pechnikov. http://pechnikov.tel/