воскресенье, 3 января 2010 г.

И где же наши принципы

Недавно я упоминал уже Витуса Вагнера, вот и сегодня есть повод вспомнить один из его проектов Still Life. Сам автор говорит следующее:
StillLife - это принципиально новый (или хорошо забытый старый) подход к созданию интерактивных вебсайтов. Интерактивый веб-сайт без динамической генерации страниц.
В настоящее время в StillLife (почти) реализована функциональность форумного движка. В дальнейшем предполагается развить её до блогового движка, а может даже и до CMS общего назначения


Сразу признаюсь, что определенные "фи" технического характера я уже высказывал по поводу архитектуры упомянутого (хм, не знаю, как правильнее классифицировать - определение статический веб-сайт не соответствует задумке, а динамическим не является, ладно пусть просто будет стиллайф). Эти замечания (о пользе динамического формирования контента) остаются в силе, но к ним добавились новые, принципиальные соображения. И вот какие - для веб-проекта из разряда форумов и/или блогов одним из важнейших инструментов является полнотекстовый поиск. Несомненно, этот поиск можно выполнять средствами Google/Yahoo/etc., но таким образом не только мы как разработчики привязываемся к одному из упомянутых вендоров, но и своих пользователей "подсаживаем"! Допустимо ли это? Год назад я еще сомневался, а сегодня мой ответ - нет, не допустимо. Открытый проект должен пользоваться открытой системой поиска, которую можно скопировать на другой хост, получая резервную копию/распределение нагрузки/и проч. бонусы, а также гарантию, что проект не умрет однажды вместе со всей накопленной информацией - ведь всегда можно будет из сделанных "для себя" копий запустить заново или просто извлечь контент и/или предоставить доступ к нему.

Названные выше соображения заставляют подумать о своей системе поиска. Собственно, о технической реализации полнотекстового поиска я уже рассказывал, сегодня лишь даю ответ на вопрос: "а зачем это нужно?". Исходники будут выложены в системе контроля версий (fossil) здесь, deb-пакет в моем репозитории, адрес которого приведен тут. Обсуждаемая реализация обходится без каких-либо "конфигов" и состоит из единственного тиклевого скрипта-индексатора и набора фильтров для преобразования документов разных форматов в plain text. Как показала эксплуатация в некоторых коммерческих проектах, "хорошо приготовленный" plain text (сохраняющий таблицы и проч. форматирование) оказался оптимальным вариантом. Отмечу, что "по частям" исходники индексатора публиковались ранее в статьях с ярлыком FTS, но фильтры документов были представлены далеко не все.

Upd.

Имя пакета с системой поиска sqlite3-poisk, уже доступен в репозитории. Индексатор с фильтрами включены, утилиты для поиска по базе переписаны на C, но пока не выложены, т.к. тестируются. На днях обновлю пакет, добавив утилиты.

Комментариев нет:


(C) Alexey Pechnikov aka MBG, mobigroup.ru