В феврале можно выбрать 31 день... Да и в сентябре вроде не 31 день (скриншот к топику). Это как-то несерьезно, может стоило хотя бы такие тривиальные вещи исправить/проверить прежде чем сюда писать?
Нуууу да, меня уже поругали. Я с эту тему еще рассказывал на DevFest, там как раз все внутренние части описаны. И про дерево и про борьбу с коллизиями. Но организаторы так и не выложили видео :(
Данная тема для меня близка и интересна. Есть несколько вопросов. Как я вижу, ваш метод неустойчив к кропу и поворотам. Почему не используете ключевые точки и дескрипторы? Там множество хороших алгоритмов. Какая нагрузка на ваш поисковой движок? (Количество изображений/запросов в секунду).
Моя реализация устойчива к кропу/ресайзу/ватермаркам/поворотам. База 100M на 3х древних серверах (порядка сдвоенного Xeon E5430), ищет порядка 2 картинки в секунду.
Мой выбор было сделать полноценный сервис к которому PHP ходит по TCP. Потому, что я сразу делал с оглядкой на кластеризацию (Уже сейчас у меня 3 сервера суммарно с 400 GB ОЗУ) Так что по написанию модулей тебе не подскажу.
Если нужна скорость, пишите на чем-то более низкоуровневом, например на С. Это не так сложно и страшного в этом ничего нет. Заодно будет очень серьезный выигрыш по памяти. Можно реализовать экстеншин к PHP, а можно сделать сетевое хранилище.
Из статьи совершенно непонятно, что есть ключевой характеристикой данного решения(скорость/объем/простота реализации). Это важно, потому, что они взаимоисключающие. А тут получается и не то и не се. Основной мой язык программирования PHP, но для данной задачи он подходит слабо. Я сам не так давно делал многопотоковый неблокирующий индекс на основе сжатого префиксного дерева. Реализовал на С с pthread. Так как у меня ключевая метрика это объем памяти, то ноды переменной длины и проблемы с фрагментацией в комплекте. И да, индекс занимают в 3 раза меньший объем чем исходные данные. Дедупликация данных это основная фишка префиксного дерева.
В феврале можно выбрать 31 день... Да и в сентябре вроде не 31 день (скриншот к топику). Это как-то несерьезно, может стоило хотя бы такие тривиальные вещи исправить/проверить прежде чем сюда писать?
Кручу, верчу, упорядочить хочу
У меня есть презентация:
www.youtube.com/watch?v=gD7dSBcL9AI
Моя реализация устойчива к кропу/ресайзу/ватермаркам/поворотам. База 100M на 3х древних серверах (порядка сдвоенного Xeon E5430), ищет порядка 2 картинки в секунду.