我在想我的問題可能的解決方案(工具)。 有一大堆地點(超過600 000)元素的集合。位置具有不同的語言名稱,並以樹形結構表示:區域 - >國家 - >管理部門 - >城市 - >郵編。用戶可以添加自定義位置,但我計劃這些操作很少發生。應用程序應提供有效的能力,以按位置名稱,類型執行搜索,以構建分層名稱(如「倫敦 - >英格蘭 - >英國」),建立位置子樹(即歐洲所有國家和城市)。數據庫vs Solr vs圖形數據庫(Neo4j)
我已經考慮過三種解決方案。
平原數據庫:位置將持有一些表和主樓邏輯將用Java代碼來實現。在這種解決方案的情況下,我擔心性能,因爲搜索,構建樹和創建自定義位置可能會涉及到額外的表連接。
SOLR:乍一看這個任務正好適用於solr:數據集很少變化,我們需要按名稱搜索。但我擔心如果Solr支點功能將滿足樹木建設需求。此外,我不確定Solr搜索是否會比普通DB好得多,因爲搜索並不困難(只需使用短字符串名稱搜索)。
graph db Neo4j:它似乎對構建樹和子樹有用。但我不知道搜索性能(看來我應該使用的社區版,它不具備一些有用的性能功能,如高速緩存等)
這實在是一個基於意見的問題。您可以使用任意數量的數據庫類型解決您的問題。沒有單一的正確答案,還有許多其他因素需要考慮,例如HA,數據攝取率,數據讀取率等。 –