(这是在Java项目中)
我正在使用与关系数据库并行的搜索引擎。感兴趣的主要对象是“列表”。它在合成样式结构中有大约5个其他实体。一个是位置,另一个是复杂的时间和日期定义。
根据我的经验和研究,Solr,Lucene,Elastic SEarch上的搜索比任何添加了全文和地理索引的数据库更快。所以,这就是为什么我希望对数据库中的数据使用搜索引擎。此外,搜索引擎将包含比数据库更精细的时间条目,更具体的是与formualaic。
因此,在参考设计模式时:目标是让CRUD从API发生到实体上的数据库内容,以及在搜索引擎索引中实例化的所有时间和地理排列。
我与合作伙伴进行过讨论,我相信他说的是对的 为了保持低耦合,“列表”类(再次,数据中数据层次结构的顶部)不应该知道搜索引擎,并且没有添加静态函数来搜索搜索引擎。他表示,“责任链”设计模式可能是允许API的CRUD同时对数据库和搜索引擎内容起作用的适当方式。我对此的看法是不正确的。
我一直关注http://sourcemaking.com/design_patterns,我认为Facade模式http://sourcemaking.com/design_patterns/facade可能是最好的。但我想听听其他意见。
提前谢谢。
PS。我正在开发一个能够注入Spring IOC的osem层(http://en.wikipedia.org/wiki/Compass_Project)。该层是为ElasticSearch定制的。到目前为止,它不支持事务或外键(并且可能永远不会这样做)。但是它会有注释钩子来开发它们。你可能想看看它。它在https://github.com/kwince/osemManager。目前正在进行两个分支。我将在下周决定合并哪一个。
答案 0 :(得分:1)
Facade模式更适合在一个相对简单的界面后隐藏一些复杂的子系统。
根据我的理解,您有两个不同的系统,并且您希望向两者发送相同的请求。您需要知道这两个系统之间的关系是什么:
希望这有帮助。