首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在100+ DB表中使用潜在的PostgreSQL列实现性能搜索的最佳方法是什么?

在100+ DB表中使用潜在的PostgreSQL列实现性能搜索的最佳方法是什么?
EN

Stack Overflow用户
提问于 2020-04-20 13:33:36
回答 1查看 255关注 0票数 0

下面的图片就像我想要完成的一样。

  1. 几个高级别的实体(表格),例如:在图像中:公司、人员等。
  2. 潜在的数百个不同的过滤标准(每个标准都是表中的一列)
  3. 一个例子可以是:“给我所有金融科技San Fransisco的初创公司,在不到一年前创办了,并筹集了超过100万美元的资金”(用粗体的话表示过滤值的例子)。

另一个针对不同域的查询可能是:“向我展示伦敦的所有素食主义餐馆,其中评级> 4.5和餐馆年龄> 5岁和每月平均客户>5000e 225

我需要知道的是,为了获得google-esque类型并获得即时结果体验,实现这一点的最佳、最有效的方法是什么?我将在每个表中包含数百万行,每个表中有近100列(不包括索引),每个表中总共有几十千兆字节的原始数据,它们可能起到全文可搜索或充当过滤器/排序标准的作用。

我正在使用PostgreSQL,探索了postgres全文搜索功能,我也在考虑ElasticSearch。postgres本机搜索+索引列是最好的方法吗?postgres + elasticsearch的组合?其他的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-20 13:57:01

Postgres是一个关系数据库,用于规范涉及多个表的数据和查询,但不太擅长搜索和过滤数据。,而elasticsearch非常适合于的搜索和过滤。

Elasticsearch甚至提供了开箱即用的筛选器缓存,这意味着如果您基于某些列过滤数据,而其他一些用户使用相同的筛选标准,那么弹性将不再过滤数据,并提供其过滤器缓存的结果,如参考链接中所解释的那样。

我知道,在您的应用程序中,无论是MongoDB还是弹性用例,Elasticsearch都不是数据库,它们也不打算替换关系数据库,如果不能承受任何数据损失,请参考此Elasticsearch讨论链接以获取更多信息。

的底线是,在本例中,您应该只包括用于搜索和筛选的相关属性,但如果您正在存储事务性数据,并且无法承受数据丢失,您也应该将数据存储在Postgres中。

https://www.elastic.co/guide/en/elasticsearch/resiliency/current/index.html是一个很好的读物,它是关于Elasticsearch的重新开发的,基于您的用例,您是否可以使用它作为主要存储库。

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

https://stackoverflow.com/questions/61323755

复制
相关文章

相似问题

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