Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 13, 2010 14:09:21

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

теги

нужно сделать “мульти” теги, сложность в том что нужно делать логическое перемножение тегов:
например открываем главную страницу - вываливаются все 100 тегов,
выбираем тег “Python”, облако зауживается и при этом должны остаться только те теги которые использовались вместе с тегом “Python”,
далее можно ещё выбрать тег из оставшихся который так же будет заужать облако и так далее.

в принципе это можно сделать на графах, но есть ещё требование: нужно у каждого тега выводить кол-во объектов которые с ним связаны, например у предыдущего примера у тегом “encode” помечено 250 объектов, жмем на тег “Python”, у тега “encode” остается 80 объектов т.е. в этих 80 объектах есть оба этих тега (“encode” и “Python”).

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

есть у кого какие идеи или полезные ссылки по данной теме?

Отредактировано (Сен. 13, 2010 14:12:36)

Офлайн

#2 Сен. 16, 2010 01:29:19

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

теги

Рекомендую воспользоваться этим: http://lucene.apache.org/solr/
И почитать в интернетах про фасетную навигацию. Подобная навигация используется в нормальных интернет-магазинах, и тут как раз такой же случай: теги - это фасеты, по которым надо фильтровать результат.



Офлайн

#3 Сен. 16, 2010 11:52:36

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

теги

это не совсем то, тут фильтрация по категориям и работа со “статическими” данными, а у меня нет категорий (одно облако) и данные динамические (могут меняться несколько раз в минуту)

Офлайн

#4 Сен. 16, 2010 13:21:50

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

теги

o7412369815963
данные динамические (могут меняться несколько раз в минуту)
Только добавляться или удаляться (старые, например) тоже?

Вообще тема интересная.
Решение, как обычно, зависит от используемых инструментов. Например, где хранить тэги.
Уточни, плз, объем обрабатываемых данных. А то миллион объектов…
Сколько объектов, сколько тэгов всего, сколько тэгов для каждого объекта, сколько тэгов можно одновременно выбрать из облака (кол-во фильтров)?..

Одно из простых решений - http://www.simplecoding.org/kak-sozdat-oblako-tegov-dlya-svoego-sajta.html
Только у тебя запросы будут другие.
Не подходит?



Офлайн

#5 Сен. 16, 2010 13:42:44

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

теги

На графах могу предложить так:
Есть три статьи на сайте у каждой по одному уникальному тегу:

Затем добавляется статья с тегами “python”, “ruby”, “разработка”

затем “разработка”, “python”


И так далее, думаю мысль с расстановкой весов понятна :)



Офлайн

#6 Сен. 16, 2010 16:51:38

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

теги

o7412369815963 Всё не правда, всё не так поняли. Категория это тот же тег, объект просто входит в несколько категорий (имеет несколько тегов). Solr - это поисковик, заточенный под поиск по фасетам (тегам, категориям). Также он может выдавать количество объектов для каждого фасета. Как и у всех, в Solr-е есть индекс, который очень просто обновляется при каждом изменении (тег добавили/убрали или новый объект появился), так что любые динамические данные для него не проблема.



Офлайн

#7 Сен. 16, 2010 16:59:33

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

теги

poltergeist
Ну зачем для этой задачи сервер полнотекстового поиска? Да еще и XML, HTTP…



Офлайн

#8 Сен. 16, 2010 19:54:56

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

теги

Zubchick
На графах могу предложить так:
у каждого объекта несколько тегов, графы “пролетают”,
можно конечно на графах сделать, но алгоритм будет отстойный (на каждом ребре нужно хранить все объекты)

Офлайн

#9 Сен. 16, 2010 19:58:44

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

теги

Lexander
Одно из простых решений - http://www.simplecoding.org/kak-sozdat-oblako-tegov-dlya-svoego-sajta.html
Только у тебя запросы будут другие.
Не подходит?
совсем не подходит, т.к. нужно в дальнейшем выбирать несколько тегов, а не один

Офлайн

#10 Сен. 16, 2010 20:00:40

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

теги

Я же написал - другой запрос.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version