Я выполнил поиск цветов со сфинксом.Это там http://code.google.com/p/hppg/. Как это работает?Очень просто, для каждого цвета я храню его доминирующие цвета в базе данных.Таблица базы данных, которая используется для индексации сфинксов, имеет столбец с именем «colors», ее содержимое заполняется следующим образом:
/**
* This part was changed based on formula
*
* It fits here better than algorithm
*
* http://en.wikipedia.org/wiki/Tag_cloud
* 15400 is number of maximum matches based on indexed thumbnail size 120x130 px.
* */
$max = 15400;
$min = 25;
$rmax = 50;
$rmin = 1;
$colorIndex = array();
foreach ($colorsMaximumImage as $color)
{
$colorIndexString = trim(str_repeat(' pld'.$color['pallete_id'],round((($rmin*($color['count']-25))/($max-$min))*100)));
if ($colorIndexString != '')
$colorIndex[] = $colorIndexString;
}
Я использовал формулу тегирования, чтобы избежать очень большого индекса.Количество - это количество совпадений пользовательского элемента поддона.Он работает просто отлично, некоторые примеры живых сайтов можно найти на домашней странице проекта.Таким образом, мы можем искать по цвету и ключевому слову одновременно :).В настоящее время я все еще экспериментирую, чтобы получить лучший результат ...