我在想我的问题可能的解决方案(工具)。 有一大堆地点(超过600 000)元素的集合。位置具有不同的语言名称,并以树形结构表示:区域 - >国家 - >管理部门 - >城市 - >邮编。用户可以添加自定义位置,但我计划这些操作很少发生。应用程序应提供有效的能力,以按位置名称,类型执行搜索,以构建分层名称(如“伦敦 - >英格兰 - >英国”),建立位置子树(即欧洲所有国家和城市)。数据库vs Solr vs图形数据库(Neo4j)
我已经考虑过三种解决方案。
平原数据库:位置将持有一些表和主楼逻辑将用Java代码来实现。在这种解决方案的情况下,我担心性能,因为搜索,构建树和创建自定义位置可能会涉及到额外的表连接。
SOLR:乍一看这个任务正好适用于solr:数据集很少变化,我们需要按名称搜索。但我担心如果Solr支点功能将满足树木建设需求。此外,我不确定Solr搜索是否会比普通DB好得多,因为搜索并不困难(只需使用短字符串名称搜索)。
graph db Neo4j:它似乎对构建树和子树有用。但我不知道搜索性能(看来我应该使用的社区版,它不具备一些有用的性能功能,如高速缓存等)
这实在是一个基于意见的问题。您可以使用任意数量的数据库类型解决您的问题。没有单一的正确答案,还有许多其他因素需要考虑,例如HA,数据摄取率,数据读取率等。 –