сравнивание пользователей по параметрам, и сортировка по релевантности

jeno

Новичок
сравнивание пользователей по параметрам, и сортировка по релевантности

Добрый вечер!

Вот сижу и думаю как лучше сделать...решил создать топик, может кто-то подскажет что-то толковое)

Есть база с пользователями, нужно сравнивать насколько один пользователь похож на другого (по параметрам) + выводить возле каждого пользователя в процентах насколько он похож..

Например, у нас есть параметры:
Страна
Интересы (варианты выбираются из спика)
Возраст
Пол
и т.д.

Есть 20000 пользователей, и текущий пользователь (допустим это мы, вот только что зарегистрировались и вошли на сайт)...текущий пользователь нажимает на "похожие на меня пользователи" и видит список пользователей отсортированный по похожести...что-то вроде:

Вася - 95%
Петя - 93%
Коля - 80%
...

+ везде где на сайте встречаются пользователи, он напротив каждого имени видит "90%" (это насколько поход данный пользователь на него)

--

собстно, думаю как лучше это все организовать =\ я вижу это так:
кроном запускается скрипт, берет каждого пользователя, и сравнивает его со всеми пользователями в БД...
но если пользователей 20000, то это получается 20000*20000 сравнений =\\ по времени это может быть долго...да и БД (mysql) будет не очень просто...

что вы думаете? может есть более умные решения? (может как-то кешировать параметры пользователей, или группировать идентичных пользователей..) или не стоит волноваться и делать так как я описал?

заранее спасибо!
 

baev

‹°°¬•
Команда форума
получается 20000*20000 сравнений =\\ по времени это может быть долго
— что мешает проверить?

Вообще, «теории программирования» я пока не наблюдаю…
 

prolis

Новичок
Проще так:
Сначала проводится сегментирование клиентской базы
Затем каждому пользователю присваивается сегмент
 

AmdY

Пью пиво
Команда форума
я реализовывал некогда поиск похожих статей на основании тегов. у тебя вместо них параметры пользователя.
у тебя M параметров, берёшь параметр и ищешь N похожих пользователей и так для каждого параметра. затем складываешь количество совпадений для каждого пользователя попавшего в выборку. можно добавить вес параметров. получается количество выборок зависит от количества параметров, а не пользователей.
 
Сверху