Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 17, 2010 21:29:12

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

теги

ога, так и планирую. Multikeys наверно и делали в основном из-за тегов :)

Офлайн

#2 Сен. 17, 2010 22:36:05

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

теги

А мне почему-то приходит в голову всякий NoSQL и map reduce. Не?



Офлайн

#3 Сен. 17, 2010 23:30:47

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

теги

Ed
А мне почему-то приходит в голову всякий NoSQL и map reduce. Не?
оно

Офлайн

#4 Сен. 17, 2010 23:36:02

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

теги

добавил 200К объектов:
db.events.save({ ‘data’:uuid.uuid1(), ‘tags’:random.sample(tt,5) }) в цикле

выборка 100 элементов идет быстро 0,016 сек
db.events.find({ ‘tags’: { ‘$all’: } }).limit(100)

а вот быстрый выбор тегов не придумал, пока сделал тормазнутый мап-редьюс (9сек):

def get_tags():
from pymongo.code import Code
map = Code(""" function() {
var ok = 0;
for(var i in this.tags) {
if(this.tags[i]=='a') ok += 1;
if(this.tags[i]=='b') ok += 1;
};
if(ok==2)
this.tags.forEach(
function(x) {
emit(x, 1);
}
);
}""")

reduce = Code("""function (key, values) {
var total = 0;
for(var i in values) total += values[i];
return total;
}""")
tags = db.events.map_reduce(map, reduce)
tags = list(tags.find().sort('value',DESCENDING).limit(100))
наверно нужно подготавливать какую-нибудь структуру…

Офлайн

#5 Сен. 18, 2010 00:16:29

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

теги

список тэгов можно хранить отдельно



Офлайн

#6 Сен. 18, 2010 00:33:39

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

теги

я бы еще на redis посмотрео. у него есть поддержка сетов и всякие операции с ними. к тому же он зело шустр.



Офлайн

#7 Сен. 18, 2010 15:53:03

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

теги

Ed
список тэгов можно хранить отдельно
можно, есть идеи?

редиса гляну

Офлайн

#8 Сен. 18, 2010 16:13:16

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

теги

o7412369815963
Ed
список тэгов можно хранить отдельно
можно, есть идеи?
Идей море :)
можно, например, хранить их в той же базе в виде tag:<tag name> - количество оттеженых документов и обновлять при любом изменении. Получим практически моментальную статистику по тэгам в обмен на усложнение обработки.



Офлайн

#9 Сен. 18, 2010 16:48:54

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

теги

Ed
можно, например, хранить их в той же базе в виде tag:<tag name> - количество оттеженых документов и обновлять при любом изменении. Получим практически моментальную статистику по тэгам в обмен на усложнение обработки.
данный алгоритм не даст требуемого результата.

Офлайн

#10 Сен. 18, 2010 16:54:18

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

теги

Если хотите помощи, то объясняйте свои … мнэ … выводы? догмы?.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version