В большинстве реализаций ключ является просто более длинным ключом, который включает все значения ключа с разделителем. Никакой магии там нет; -)
В вашем примере значения ключей могут выглядеть примерно так
"123499|John Doe|Conway, NH" "32144|Bill Gates| Seattle, WA"
Одна из характеристик этих индексов с составными ключами заключается в том, что можно использовать промежуточные узлы дерева. в некоторых случаях «покрыть» запрос.
Например, если запрос состоит в том, чтобы найти имя и город с заданным идентификатором, поскольку идентификатор является первым в индексе, индекс может эффективно выполнять поиск по этому индексу. Оказавшись в промежуточном узле, он может «анализировать» имя и город по ключу, и ему не нужно идти к конечному узлу, чтобы прочитать то же самое.
Если, однако, запрос также должен отображать номер телефона, то логика будет следовать по листу, когда будет найдена полная запись.
http://tineye.com/ может быть полезно, если вы просто сравниваете свои собственные изображения.
Вам, вероятно, следует провести некоторое исследование алгоритмов сходства изображений, хотя что-нибудь advanced не подходит для такого языка сценариев, как PHP. Самый простой метод сравнения будет работать следующим образом:
Я не совсем знаком с ImageMagick и PHP '
Я не пробовал, но, возможно, Libpuzzle поможет (цитата) :
Библиотека Puzzle предназначена для быстро найти визуально похожие изображения (GIF, PNG, JPG), даже если у них есть был изменен размер, повторно сжат, перекрашен или немного изменен.
Это библиотека C, но также есть с помощью инструмента командной строки и PHP bindings.
И есть пример в PHP там .
(Похоже, это расширение PHP - это означает, что вам нужно быть администратором вашего сервера, чтобы иметь возможность установить it)
По SO уже есть много вопросов об обнаружении похожих изображений: