Форум сайта python.su
нужно сделать “мульти” теги, сложность в том что нужно делать логическое перемножение тегов:
например открываем главную страницу - вываливаются все 100 тегов,
выбираем тег “Python”, облако зауживается и при этом должны остаться только те теги которые использовались вместе с тегом “Python”,
далее можно ещё выбрать тег из оставшихся который так же будет заужать облако и так далее.
в принципе это можно сделать на графах, но есть ещё требование: нужно у каждого тега выводить кол-во объектов которые с ним связаны, например у предыдущего примера у тегом “encode” помечено 250 объектов, жмем на тег “Python”, у тега “encode” остается 80 объектов т.е. в этих 80 объектах есть оба этих тега (“encode” и “Python”).
можно конечно пробежаться по всем объектам и проверять вхождение обоих тегов, но этих объектов будет миллионами (генерируются роботами и людьми). хотелось бы какой-нибудь быстрый алгоритм.
есть у кого какие идеи или полезные ссылки по данной теме?
Отредактировано (Сен. 13, 2010 14:12:36)
Офлайн
Рекомендую воспользоваться этим: http://lucene.apache.org/solr/
И почитать в интернетах про фасетную навигацию. Подобная навигация используется в нормальных интернет-магазинах, и тут как раз такой же случай: теги - это фасеты, по которым надо фильтровать результат.
Офлайн
это не совсем то, тут фильтрация по категориям и работа со “статическими” данными, а у меня нет категорий (одно облако) и данные динамические (могут меняться несколько раз в минуту)
Офлайн
o7412369815963Только добавляться или удаляться (старые, например) тоже?
данные динамические (могут меняться несколько раз в минуту)
Офлайн
На графах могу предложить так:
Есть три статьи на сайте у каждой по одному уникальному тегу:
Затем добавляется статья с тегами “python”, “ruby”, “разработка”
затем “разработка”, “python”
И так далее, думаю мысль с расстановкой весов понятна :)
Офлайн
o7412369815963 Всё не правда, всё не так поняли. Категория это тот же тег, объект просто входит в несколько категорий (имеет несколько тегов). Solr - это поисковик, заточенный под поиск по фасетам (тегам, категориям). Также он может выдавать количество объектов для каждого фасета. Как и у всех, в Solr-е есть индекс, который очень просто обновляется при каждом изменении (тег добавили/убрали или новый объект появился), так что любые динамические данные для него не проблема.
Офлайн
poltergeist
Ну зачем для этой задачи сервер полнотекстового поиска? Да еще и XML, HTTP…
Офлайн
Zubchickу каждого объекта несколько тегов, графы “пролетают”,
На графах могу предложить так:
Офлайн
Lexanderсовсем не подходит, т.к. нужно в дальнейшем выбирать несколько тегов, а не один
Одно из простых решений - http://www.simplecoding.org/kak-sozdat-oblako-tegov-dlya-svoego-sajta.html
Только у тебя запросы будут другие.
Не подходит?
Офлайн
Я же написал - другой запрос.
Офлайн