Эффективный поиск больших наборов данных в Mongo Mapper? - PullRequest
2 голосов
/ 28 января 2011

Я храню большое количество данных в Твиттере и хотел бы получить около 500 тыс. Записей для обработки данных за раз.У меня есть документ TwitterTweet mongo, содержащий основные данные твитов, и я пытаюсь получить его следующим образом:

weekly_tweets = TwitterTweet.all(:created_at.gt => 1.week.ago, :fields => [:created_at, :text, :from_user])

Проблема в том, что это занимает много времени и памяти - естьлюбой способ сделать это более масштабируемым и эффективным.Я думал об использовании карты, но это выглядит очень сложно для того, что я хочу сделать - обработка текста и регулярные выражения в твитах.

1 Ответ

0 голосов
/ 28 января 2011

Не вызывайте все, так как это приводит к созданию объекта из всех 500 000 ваших записей в монго и, как вы заметили, использует тонну памяти и времени.Вместо этого используйте find_each и выполняйте итерацию.Find возвращает курсор, который более эффективен.

...