Мы создаем платформу для благотворительности и хотим регистрировать все происходящие действия. Например
- Джон Доу (ссылка) пожертвовал 20 долларов на проект «Дети в беде» (ссылка)
- Джон Доу (ссылка) присоединился к команде Architects (ссылка)
- Джон Доу (ссылка) подружился с Дэйном Доу (ссылка)
- Проект Дети (ссылка) выложил новое фото (фото)...
Так что это похоже на стену Facebook. Вопрос в том, как сохранить это в Azure? В настоящее время мы используем Azure SQL и сохраняем определенные поля в JSON, а затем на основе другого поля мы отображаем действие. Но мы не можем искать в этих данных и т. д., что очень плохо.
Я проверил службы таблиц, которые идеально подходит для этого. Единственная проблема - производительность и заказ. Многие говорили, что поиск по неиндексированному полю очень медленный + нам нужен порядок (я не знаю, какой здесь порядок по умолчанию, вероятно, ASC - где-то нам нужен DESC, где-то ASC).
Другие предлагали использовать Lucene.net, просто чтобы где-то хранить данные и чтобы lucene индексировала данные. Тогда мы можем легко найти и заказать. Единственная проблема заключается в обновлении индекса (когда мы что-то делаем на платформе, это должно отображаться немедленно, поэтому мы не можем перестроить индекс за 1 час или около того). Я знаю, что мы, вероятно, можем обновить индекс и просто переиндексировать записи, которые моложе какой-то даты. Это может сработать.
Третий вариант — установка базы данных nosql, такой как mongodb. Но читая онлайн, никто не подтвердил, работает ли это. Но я заметил, что в магазине Azure есть mongodb.
Что ты предлагаешь? Была ли у кого-нибудь подобная проблема и как вы ее решили?