【发布时间】:2014-05-08 12:20:39
【问题描述】:
我正在为我的问题考虑可能的解决方案(工具)。 有一个包含大量(超过 60 万个)元素的位置集合。位置有名称(用不同的语言)并以树结构表示:区域->国家->行政部门->城市->压缩。用户可以添加自定义位置,但我计划这些操作很少发生。应用程序应提供按位置名称、类型执行搜索、构建分层名称(例如“伦敦->英格兰->英国”)、构建位置子树(例如欧洲这些国家的所有国家和城市)的高效能力。
我考虑了三种解决方案。
普通数据库:位置将保存在某些表中,主要构建逻辑将在 java 代码中实现。在这种解决方案的情况下,我担心性能,因为搜索、构建树和创建自定义位置可能涉及额外的表连接。
SOLR:乍一看,这个任务正是针对 solr:数据集很少更改,我们需要按名称搜索。但我担心 Solr 枢轴功能是否会满足树构建的需求。另外我不确定 Solr 搜索是否会比普通 DB 好得多,因为搜索并不那么困难(只需通过短字符串的名称进行搜索)。
graph db Neo4j:它似乎对构建树和子树很有用。但是我不确定搜索性能(看来我应该使用社区版,它没有一些有用的性能功能,如缓存等)
【问题讨论】:
-
这确实是一个基于意见的问题。您可以使用任意数量的数据库类型来解决您的问题。没有唯一的正确答案,还有很多其他因素需要考虑,例如 HA、数据摄取率、数据读取率等。
标签: java sql-server database solr neo4j