2014-04-18 126 views
10

我工作這需要做一個地理空間過濾的搜索查詢(即過濾某一半徑以外的所有元素)。我們將PostgreSQL和ElasticSearch作爲我們基礎架構的一部分,我正在評估使用哪兩種。的PostgreSQL PostGIS的VS ElasticSearch空間搜索

我不要求對「哪個更好」,而是客觀利弊&利弊清單將是有益的,在易於實現,性能,可擴展性方面,等

+0

我一直在使用Postgres/Postgis多年,我即將開始測試一些地理編碼和模糊地址匹配Lucene和Solr(我從來沒有用過,但已經看到了一些非常積極的介紹)。如果我找到可能對您有用的任何內容,我會通知您。您正在查看什麼尺寸的數據集,並且可以提供有關您可能正在運行的查詢類型的更多信息。 –

+0

@JohnBarça如果你發現一些有趣的東西,那就太棒了,請讓我知道。我對兩種類型的查詢感興趣(雖然本質上非常相似):1)獲得一組結果,它們在特定的接近度內(沒有特定的順序)(即通過接近的過濾器),以及2)返回一組結果按接近度排序,距離最近。 – lms

回答

5

的PostGIS的縮放以同樣的方式作爲postgresql的比例。在PostGIS的指數將工作得一樣的其他關係,可能檢查出來here

如果你看一看的鏈接,它解釋了使用它的索引這是對每個插入操作進行了一些幾何算法,所以它可能不是實時的應用程序響應不夠。

雖然elasticsearch具有實時索引,基於Lucene索引。

對於實時應用程序,這是使用任何關係數據庫的ACID模型可能是浪費和任務可能並不需要這種類型的安全。

Postgresql使用ACID模型,這在重實時應用程序中可能是缺點

雖然

Elasticsearch是一種被用於實時搜索由搜索引擎。

你需要決定你需要基於特定的任務,搜索類型的?

:酸模型是我的特殊任務不切實際的,所以我不喜歡浪費時間,一些同步和其他的東西,我也可以根據用戶的位置後端約會應用(讓所有用戶在1km的半徑內)。