我正在研究一个需要进行地理空间过滤的搜索查询(即过滤掉一定半径以外的所有元素).我们将PostgreSQL和ElasticSearch作为我们基础架构的一部分,我正在评估两者中的哪一个使用.
我不是要求"哪个更好",但在易于实现,性能,可扩展性等方面,客观的优缺点列表会有所帮助.
postgis的缩放方式与postgresql scale相同.postgis索引的工作方式与其他关系索引相同,你可以在这里查看.
如果您查看链接,它会解释它使用在每个插入操作上执行的几何算法进行索引,因此在实时应用程序中可能没有足够的响应.
虽然elasticsearch具有基于Lucene索引的实时索引.弹性搜索通常更适合实时繁重的应用程序,然后是Postgresql.
Postgresql具有简单的巨大优势.使用Postgresql实现测试和维护这样的功能要容易得多.例如,我更喜欢快速创建基于Postgresql的原型,如果由于大量写入等原因它开始执行不好,我转而使用elasticsearch实现.