gpt4 book ai didi

java - 数据库与 Solr 与 Graph DB(Neo4j)

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:40 27 4
gpt4 key购买 nike

我正在考虑针对我的问题的可能解决方案(工具)。有一个包含大量(超过 600 000 个)元素的位置集合。位置有名称(不同语言)并以树结构表示:地区->国家->行政部门->城市-> zip 。用户可以添加自定义位置,但我计划这些操作很少发生。应用程序应提供按位置名称、类型执行搜索、构建分层名称(例如“伦敦->英格兰->英国”)、构建位置子树(例如所有国家和欧洲这些国家/地区的城市)的高效能力。

我考虑了三种解决方案。

  1. 普通数据库:位置将保存在一些表中,主要构建逻辑将在 java 代码中实现。对于此解决方案,我担心性能,因为搜索、构建树和创建自定义位置可能涉及额外的表连接。

  2. SOLR:乍一看这个任务就是针对solr的:数据集很少变化,我们需要按名称搜索。但我担心 Solr 枢轴功能是否能满足树构建的需求。此外,我不确定 Solr 搜索是否会比普通 DB 好得多,因为搜索并不那么困难(只需按短字符串的名称搜索)。

  3. graph db Neo4j:它似乎对构建树和子树很有用。但我不确定搜索性能(似乎我应该使用社区版,它没有一些有用的性能功能,如缓存等)

最佳答案

数据库是一个很大的问题。因为 RDBMS 没有针对基于关系的查询进行优化。例如,向我展示在我所在的同一家餐厅用餐并且属于我所在的同一地区的人。或者使它更复杂,数据库查询可能是要计算关系级别的 killer 。就像我可以成为你的二级 friend ,你的一个或多个 friend 是我的 friend 。

SOLR:Solr 是一个不错的选择,但您必须了解它对性能的影响。有这么多行要索引,它可能会成为内存 killer 。在实现 SOLR 之前先通过这些。 http://wiki.apache.org/solr/SolrPerformanceProblems

http://wiki.apache.org/solr/SolrPerformanceFactors

SOLR 也不是更合乎逻辑的搜索的好解决方案,因为您必须在开始之前学习所有内容。

Neo4J(或任何其他图形数据库)是完美的解决方案。我自己实现了所有这三种技术,根据我的经验,我发现 Neo4J 最适合这种需求。

但是,您必须了解如何备份数据库以及如何在崩溃时恢复它。

祝一切顺利。

关于java - 数据库与 Solr 与 Graph DB(Neo4j),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23541627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com