【发布时间】:2016-05-22 08:48:30
【问题描述】:
我正在计划一个涉及数据持久性、搜索功能和推荐功能(协作过滤)的项目。
如图所示,我在想:
1) 拥有一组微服务来处理将持久保存在 NoSQL 存储中的实体(可能是 MongoDb)
2) 对于搜索功能,我将使用 Slor,来自微服务的消息将用于更新 Slor 索引。
3) 对于建议,我正在考虑使用 Apache Mahout 并使用消息队列来更新 Mahout 中使用的 Slor 索引
我的问题是:
1) 这是处理此类问题的正确架构吗?
2) 它是否需要 3 个数据存储:用于数据持久性的 MongoDB、用于搜索的 Slor(Lucene 索引)和用于推荐的 mahout 使用的 Solr(Lucene 索引)?
3) 既然 Slor 也是 NoSQL 解决方案,那么在不使用 MongoDB 的情况下,将 Solr 用于持久性和搜索功能有什么缺点?
4) 如果我想使用 Hadoop 或 Apache Sparks 进行分析,这涉及到引入另一个数据存储?
【问题讨论】:
标签: java hadoop solr architecture mahout