所以我正在建立一个有人员,银行账户和银行账户交易的系统。 我需要能够回答以下问题: “将从1/2/3度连接的所有人归还给特定的人”, “归还所有年龄> 40岁的人” “从德国银行分行返回交易” 还有组合的查询,如 “归还所有与特定人士或伦敦居民有关的人”
我还需要提供多个分析查询。
在尝试对问题进行建模时,我认为使用Neo4j和amp; Elasticsearch。 我将保存Elasticsearch中的所有数据(每种类型的索引),以及我将存储在neo4j中的关系(person-> person和person->银行帐户)。
我现在唯一的问题是如何将来自两个数据存储的查询组合在一起。 在我需要将结果从一个数据库传递到另一个数据库以查询较小的子集时,我需要使用ID,所以我实际上需要等到所有查询完成。 例如,查询如下: “归还所有与特定人士相关并居住在伦敦的人” 我将需要去Elasticsearch并要求所有居住在伦敦的人 - 我可能会在这里获得数百万个ID,我现在需要传递给neo4j,并在这些ID上创建一个密码。 所以我不能使用这种方法 - 是否有建议做这样的事情?我也尝试过寻找一个neo4j-Elasticsearch插件,但我找到的插件并不是那么好......
答案 0 :(得分:1)
我会尽量避免使用2个不同的DB来执行单个查询,因为它会增加复杂性,开销和延迟。相反,也许您可以将所有数据写入neo4j数据库,push to ElasticSearch只需要与ElasticSearch一起使用的数据。如果这是可以接受的,那么所有只读查询都只使用一个数据库 - 最适合查询的数据库。