Извините за потенциальность этого вопроса - все еще пытаюсь разобраться в этом нереляционном материале NoSQL.
Я был очень впечатлен производительностью и простотой ElasicSearch, но мне нужно ответить на вопрос о сопоставлении (пограничный NoSQL theroy), прежде чем я углублюсь в реализацию.
Давайте продолжим использовать примеры из Твиттера, которые ElasticSearch имеет в своей документации.
По сути, мы знаем, что твит принадлежит пользователю, и у пользователя много твитов.
Объекты выглядят примерно так:
user = {'screen_name':'d2kagw', 'id_str':'1234567890', 'favourites_count':'15', ...}
tweet = {'message':'lorem lipsum...', 'user_id_str':'1234567890', ...}
Интересно, может ли объект твит иметь ссылку на объект пользователя?
Так как я хочу иметь возможность писать запросы вроде:
{'query': {
'term':{'message':'lipsum'},
'range':{'user.favourites_count':{'from':10, 'to':30'}}
}}
Который я хотел бы вернуть как твиты, соответствующие пользовательским объектам, как часть ответа (вместо того, чтобы загружать их позже).
Я слишком много об этом прошу?
Следует ли ожидать, что все пользовательские данные будут добавлены в объект твита, если я хочу запросить данные таким образом?
В моей реализации (не использует твиттер, это был просто элегантный пример) мне нужно иметь два набора данных в качестве разных индексов из-за различных способов запроса данных, поэтому я не уверен, что Можно использовать тип объекта И иметь структуру индекса, который мне требуется.
Заранее спасибо за помощь.