Небольшой — потому-что в сравнении со Сфинксом скорость работы действительно не впечатляет, а для ленивых — потому-что все очень просто.
Чем привлек внимание, не смотря на скромные характеристики?
1. Возможностью real-time индексирования.
2. Наличие атрибутов документа и их использование в поиске и сортировке результата.
3. Простота работы и компактная четкая документация (хватило пары дней на изучение, собственно беглый взгляд по диагонали доков и явился толчком для более детального изучения продукта).
Недавно, чисто случайно, попался на глаза продукт от FAL Labs — Kyoto Tycoon, легкий сервер данных. В основе данного продукта — QDBM (Quick Database Manager) — хранилище данных типа ключ-значение. Зацепило меня то, что с этим «Магнатом из Киото» можно общаться по memcached-like протоколу.
Поскольку уже некоторое время использую MemcacheDB, захотелось сравнить их характеристики (протокол общения один, и там и там NoSQL-хранилище ключ-значение). Недавно подвернулся удобный случай — экспортировал некоторый объем данных из одного самопального хранилища в MemcacheDB. Для тестирования осталось только развернуть на том-же сервере Kyoto Tycoon.
Вот что у меня получилось:
Предлагаю решение, как быстро и просто поставить на сервере легкий фронтэнд для отдачи картинок, css-файлов и прочей статики. С лета 2002 года я для данных целей использую 0W-httpd или ZeroWait httpd, как его часто называют в разных источниках (искать что-то о нем, помимо дистрибутива, лучше по второму названию).
Установить и настроить его достаточно просто (даже слишком просто):
Хранение — пожалуй самое тонкое место подобных проектов. В зависимости от решаемых задач оно должно обеспечивать:
— быстрый доступ к данным;
— быстрое обновление данных;
— достаточный функционал с возможностями расширения.
В системах массового обслуживания с большим потоком запросов, малое время обработки отдельного запроса — залог работоспособности системы.
Если важна оперативность появления в доступе новых данных (новостные системы), то на первый план выходит скорость обновления базы.
С ростом объемов данных совмещать совмещать высокую скорость доступа и обновления становится практически невозможно.
Известны два способа проектирования — «сверху вниз» и «снизу вверх». Похоже я опять пытаюсь изобрести велосипед, пойти третьим путем — от середины.
Поскольку лично мне в данный момент более интересна «частная производная» поиска, а именно поиск по отдельному сайту (группе сайтов, сгруппированных в некий единый блок) — в этом направлении и пойду.
Кому не интересны изобретения велосипедов, дальше просьба не читать и не плевать в спину.
Кому есть что сказать по существу вопроса — всегда рад.
Сейчас я собираюсь рассмотреть основные вопросы, которые мне необходимы для масштабирования системы.
Последнее время разработка новых поисковиков похоже становится модным увлечением. Вот и наше правительство, по слухам, собирается свой поисковик сделать. Дело это заразное. Решил и я собственный поисковик разработать. Виртуальный. Т.е. на бумаге. Ну или точнее — на экране :)
Некоторый опыт для этого имеется. Где вприглядку. Где практический. Посмотрим, что из этого выйдет. В конце-концов и нынешние титаны поиска когда-то были начинающими. В отличии от них тем, кто ввязывается в это безнадежное дело сейчас, легче. Вокруг гораздо больше информации, чем было у них. Перед глазами результаты их деятельности. Можно посмотреть со стороны и определиться, что тебе нравится в этих системах, что нет, что хотелось бы добавить, что убрать.
Я не собираюсь стуча пяткой в грудь заявлять, что сделаю все круче. Я вообще не уверен, что результат когда-нибудь воплотится в рабочие коды. Но всеравно попробую. Возможно кое-что из этих «бумажных» разработок пригодится мне в реальной жизни. Если кому-то моя болтовня принесет пользу — буду рад.
Всегда готов выслушать критику и предложения, за исключением разве что «ацтой» да «нафига нужно». Для себя я сделал вывод — нужно. Нужно привести в порядок обрывки мыслей и идей. Посмотреть на них со стороны. Попытаться понять, что мне нужно, чего я хочу. Ну и кроме того — поучиться связно излагать собственные мысли. Так, чтобы после прочтения хотя бы самому понятно стало, что хотел сказать :)
А данной болтовней я пытаюсь припереть себя к стенке. Чтобы лишить себя возможности к отступлению. Беру сам себя «на слабо». Завтра постараюсь озвучить первые мысли.
Поставили на одном проекте антимат на основе Antimat.pm Ильи Солдаткина.
Через некоторое время возникла необходимость его подправить. Было решено, что слово «фиг» матом считать не будем и заказчик захотел добавить еще пару слов. Как быть? Базовый шаблог модуля — строка длиной 12706 символов. Ходить по ней вдоль и что-то искать-править — врагу не пожелаешь.