jeno
Новичок
сравнивание пользователей по параметрам, и сортировка по релевантности
Добрый вечер!
Вот сижу и думаю как лучше сделать...решил создать топик, может кто-то подскажет что-то толковое)
Есть база с пользователями, нужно сравнивать насколько один пользователь похож на другого (по параметрам) + выводить возле каждого пользователя в процентах насколько он похож..
Например, у нас есть параметры:
Страна
Интересы (варианты выбираются из спика)
Возраст
Пол
и т.д.
Есть 20000 пользователей, и текущий пользователь (допустим это мы, вот только что зарегистрировались и вошли на сайт)...текущий пользователь нажимает на "похожие на меня пользователи" и видит список пользователей отсортированный по похожести...что-то вроде:
Вася - 95%
Петя - 93%
Коля - 80%
...
+ везде где на сайте встречаются пользователи, он напротив каждого имени видит "90%" (это насколько поход данный пользователь на него)
--
собстно, думаю как лучше это все организовать =\ я вижу это так:
кроном запускается скрипт, берет каждого пользователя, и сравнивает его со всеми пользователями в БД...
но если пользователей 20000, то это получается 20000*20000 сравнений =\\ по времени это может быть долго...да и БД (mysql) будет не очень просто...
что вы думаете? может есть более умные решения? (может как-то кешировать параметры пользователей, или группировать идентичных пользователей..) или не стоит волноваться и делать так как я описал?
заранее спасибо!
Добрый вечер!
Вот сижу и думаю как лучше сделать...решил создать топик, может кто-то подскажет что-то толковое)
Есть база с пользователями, нужно сравнивать насколько один пользователь похож на другого (по параметрам) + выводить возле каждого пользователя в процентах насколько он похож..
Например, у нас есть параметры:
Страна
Интересы (варианты выбираются из спика)
Возраст
Пол
и т.д.
Есть 20000 пользователей, и текущий пользователь (допустим это мы, вот только что зарегистрировались и вошли на сайт)...текущий пользователь нажимает на "похожие на меня пользователи" и видит список пользователей отсортированный по похожести...что-то вроде:
Вася - 95%
Петя - 93%
Коля - 80%
...
+ везде где на сайте встречаются пользователи, он напротив каждого имени видит "90%" (это насколько поход данный пользователь на него)
--
собстно, думаю как лучше это все организовать =\ я вижу это так:
кроном запускается скрипт, берет каждого пользователя, и сравнивает его со всеми пользователями в БД...
но если пользователей 20000, то это получается 20000*20000 сравнений =\\ по времени это может быть долго...да и БД (mysql) будет не очень просто...
что вы думаете? может есть более умные решения? (может как-то кешировать параметры пользователей, или группировать идентичных пользователей..) или не стоит волноваться и делать так как я описал?
заранее спасибо!