首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全文搜索和200M+记录数据库

问全文搜索和200M+记录数据库
EN

Stack Overflow用户
提问于 2017-03-21 10:43:17
回答 2查看 2.2K关注 0票数 4

Iam即将创建一个包含至少2亿条条目的庞大数据库。数据库需要使用全文进行搜索,并且应该是快速的。

我的数据库从许多不同的数据源获取数据,我需要定期导入新的或更新的数据。

将我的所有数据存储在一个关系数据库(如mysql )中,然后创建一个nosql文档数据库(例如mongodb或elasticsearch),仅仅是为了搜索,还是这在可靠性和防止冗余信息方面没有任何好处?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-21 16:44:54

我认为在SQL数据库中保存主记录并将它们复制到noSQL数据库是一种非常常见的方法。

ElasticSearch有一个关于他们的弹性的状态页面。即使在最新版本中,ElasticSearch也可以在一些不同的情况中松散数据。ElasticSearch索引结构的重大更改(例如添加分析器)要求您对所有文档进行再指数。如果您有另一个文档源,则此过程更安全。说到底,ElasticSearch的设计并不是为了始终如一地存储文档--在偶尔丢失数据不是灾难的情况下,我只会选择使用ElasticSearch作为主要存储。

与ElasticSearch不同,MongoDB被设计为回弹力。您应该能够安全地将文档存储在MongoDB中。我发现尝试在MongoDB中进行全文搜索可能会有些痛苦,至少与ElasticSearch相比是如此。在我看来,对于文本搜索,MongoDB相对于MySQL的全文的唯一优势是它是分布式的。

我们现在正在运行ElasticSearch和MySQL,其好处远远超过了额外基础设施和处理两者之间的复制的麻烦。我们以前曾尝试使用noSQL解决方案作为主要数据存储,结果是灾难性的。通过在ES中使用可伸缩的、有效的全文搜索,与MySQL一起运行ES可以使您在这两个方面都发挥最大的优势--在SQL中实现数据的一致性和安全性。

票数 4
EN

Stack Overflow用户

发布于 2017-03-21 10:52:44

我不知道这是否适用于您的情况,但是Evan比较了几种常见的Rails搜索选项(Sphinx、Ferret和Solr)正在运行一些基准测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42924810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档