Форум сайта python.su
o7412369815963Ты про второе условие в первом посте: количество связанных объектов с учетом фильтра?
данный алгоритм не даст требуемого результата.
Офлайн
Lexanderога, ну или хотя бы 1. просто фильтрация тегов. я пока что придумал на графах, но там сложный и медленный алгоритм.o7412369815963Ты про второе условие в первом посте: количество связанных объектов с учетом фильтра?
данный алгоритм не даст требуемого результата.
Офлайн
Ed>можно, например, хранить их в той же базе в виде tag:<tag name> - количество оттеженых документов и обновлять при любом изменении
Если хотите помощи, то объясняйте свои … мнэ … выводы? догмы?.
Офлайн
связи там и не нужны. Эту таблицу я предлагал использовать для хранения и выдачи статистики верхнего уровня. Это позволит не пересчитывать ее каждый раз, когда нужно ее вывести.
Отредактировано (Сен. 18, 2010 18:41:44)
Офлайн
а вот пример почему простые графы неработают:
E1,E2,E3… - это элементы
A,B,B,D… - теги
1 таблица - исходные данные, у элемента E1 теги A,B,C
2 т. - неориентированный граф, связь каждого тега с другими тегами
3 (левая) т. - пример фильтрации по тегу С, при этом должны остаться теги: A1, B2, D2, E2, F1, G1 - нижняя строка, число указывает на кол-во
это все норм, но если выбрать фильтр по 2-м тегам или более, то из этого графа уже не вынуть такую информацию.
пример 3 (средняя табл.) - фильтр по тегам C и D, должны остаться теги B1, E1
вот так вот…
Отредактировано (Сен. 18, 2010 18:46:36)
Офлайн
Edтогда надо было подписать “верхнего уровня”,
связи там и не нужны. Эту таблицу я предлагал использовать для хранения и выдачи статистики верхнего уровня. Это позволит не пересчитывать ее каждый раз, когда нужно ее вывести.
Офлайн
Я подумал, что как раз на верхнем уровне наибольший объем вычислений, а затем он резко сокращается. Нет?
Офлайн
Edверхний уровень легко закешировать, 1 фильтр можно на графах решить.
Я подумал, что как раз на верхнем уровне наибольший объем вычислений, а затем он резко сокращается. Нет?
Офлайн
Еще одна идея - хранить связи и статистику между тэгами на верхнем уровне в виде:
{tag: (count, )},
где count - общее количество объектов, оттэженых тэгом tag
count1 - количество объектов, оттэженых тэгами tag и tag1
count2 - количество объектов, оттэженых тэгами tag и tag2
и так далее.
Обновление такой структуры при добавлении/удалении тэга не составит труда, а в качестве бонуса у нас быстрое вычисление тэгов и их связей на любом уровне.
Офлайн
Edэто и есть простой граф который я выложил выше в посте 35, из него не получить фильтр по 2-м тегам
Еще одна идея - хранить связи и статистику между тэгами на верхнем уровне в виде:
{tag: (count, )},
где count - общее количество объектов, оттэженых тэгом tag
count1 - количество объектов, оттэженых тэгами tag и tag1
count2 - количество объектов, оттэженых тэгами tag и tag2
и так далее.
Обновление такой структуры при добавлении/удалении тэга не составит труда, а в качестве бонуса у нас быстрое вычисление тэгов и их связей на любом уровне.
Офлайн