【问题标题】:PostgreSQL PostGIS vs ElasticSearch Spatial searchPostgreSQL PostGIS 与 ElasticSearch 空间搜索
【发布时间】:2014-06-02 22:01:43
【问题描述】:

我正在处理需要进行地理空间过滤的搜索查询(即过滤特定半径之外的所有元素)。我们将 PostgreSQL 和 ElasticSearch 作为我们基础架构的一部分,我正在评估使用这两者中的哪一个。

我并不是要“哪个更好”,但客观的优缺点列表会在易于实施、性能、可扩展性等方面有所帮助。

【问题讨论】:

  • 我多年来一直在使用 Postgres/Postgis,并且即将开始测试一些与 Lucene 和 Solr 匹配的地理编码和模糊地址(我从未使用过,但在)。如果我发现任何可能对您有用的东西,我会通知您。您正在查看什么大小的数据集,您能否提供更多关于您可能正在运行的查询类型的信息。
  • @JohnBarça 那太好了,如果您发现一些有趣的事情,请告诉我。我对 2 种类型的查询感兴趣(尽管本质上非常相似):1)以无特定顺序(即按接近度过滤)获得一组在某个邻近范围内的结果,以及 2)返回一组结果按距离排序,最近的在前。

标签: postgresql elasticsearch geospatial postgis


【解决方案1】:

postgis 的扩展方式与 postgresql 的扩展方式相同。 postgis 索引的工作方式与其他关系索引几乎相同,您可以查看here

如果您查看链接,它解释说它使用在每个插入操作上执行的一些几何算法进行索引,因此它在实时应用程序中可能没有足够的响应。

虽然 elasticsearch 具有基于 Lucene 索引的实时索引。弹性搜索通常更适合实时繁重的应用程序,然后是 Postgresql。

Postgresql 有一个巨大的优势,那就是简单。使用 Postgresql 实现测试和维护这样的功能要容易得多。例如,我更喜欢快速创建基于 Postgresql 的原型,如果由于大量写入等原因开始表现不佳,我会切换到 elasticsearch 实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-07
    • 2013-08-25
    • 2018-11-09
    • 2020-09-10
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多