СОЕДИНЕНИЯ в базах данных NoSQL - PullRequest
2 голосов
/ 20 декабря 2011

Я столкнулся с проблемой разработки структуры документа для Apache Solr (однако, я думаю, эта проблема проста и характерна для других движков NoSQL).У меня есть документ, который должен содержать миллионы пользовательских ссылок (например, миллион полей в нем).В RDBMS я бы использовал 2 простые таблицы с отношениями один-ко-многим.Однако как это достигается в NoSQL (особенно в Solr)?Не станет ли документ с миллионом полей (многозначным) слишком тяжелым?Solr не поддерживает обновление документов на уровне полей.Это должно быть обновлено в целом, и это слишком дорого; (

Ответы [ 3 ]

2 голосов
/ 20 декабря 2011

Я не знаю о Solr, но MongoDB действительно не имеет соединений. Вы можете встраивать связанные данные в родительский объект (вполне естественно, что объект User встраивает роли пользователя).

Если, однако, из-за этого документа для встраивания может превысить его предел (в настоящее время 16M на документ), у вас нет другого выбора, кроме как сохранить эти связанные данные в отдельных документах (либо в виде отдельных документов, либо сгруппированных в несколько пакетов документов) .

Если вы храните данные отдельно от основного объекта, то, естественно, вам нужно выполнить более одного запроса, чтобы получить все данные. Не уверен, как Solr понравится это.

MongoDB поддерживает частичное обновление документов на месте.

1 голос
/ 20 декабря 2011

Solr 4.0 поддерживает тип синтаксиса соединения.

http://wiki.apache.org/solr/Join

0 голосов
/ 21 августа 2012

Я не уверен насчет solr, но playOrm помогает выполнять объединения, НО это происходит на разделах таблицы (не на всей таблице).Поэтому, если вы разбиваете по месяцам или учетным записям, вы просто берете этот раздел и запрашиваете его с помощью обычного SQL.Не уверен, что это вам поможет или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...