1. 程式人生 > >ArangoDB 釋出 3.4 正式版:全文搜尋、GeoJSON、流式遊標

ArangoDB 釋出 3.4 正式版:全文搜尋、GeoJSON、流式遊標

  

多模型資料庫的理念是:給你提供了一種多檢視檢視資料的能力。ArangoDB 的資料庫背後的理念是:可以自由的將這些檢視組合到單個查詢中。在 ArangoDB 3.4的更新中,我們進一步的擴充套件了 ArangoDB 的這些功能。對於每次釋出 ArangoDB 的新版本,我們總是感到很興奮,但是,這次釋出的版本有點特別。新版本包括兩個新特性:一個是基於 C++ 的全文搜尋和排序引擎,我們稱之為:ArangoSearch;另一個是:通過整合 Google™S2 Geometry Library 和 GeoJSON,極大的擴充套件了地理空間查詢的功能。加入 ArangoSearch

GeoJSON的網路研討會來更加深入的瞭解這些新特性。

ArangoDB 3.4版本在各個方面的的效能也獲得了提升,例如改進了在多核心機器中執行的效能和可擴充套件性。我們的測試結果顯示,ArangoDB 3.4 查詢效能在多核心機器上比原來提升了 100%

本次版本更新除了40多項改進,讓我們一起來看一下這些新特性.

ArangoSearch

全文搜尋&相似度排名引擎。

ArangoSearch是整合到ArangoDB中基於 C++搜尋和排名引擎。ArangoSearch允許你將搜尋和ArangoDB其他的訪問模式相結合。

搜尋使用特殊型別的具體檢視,一次性提供了跨多個集合的全文搜尋

在檢視型別 arangosearch 的定義中,您可以使用一個或多個通用文字分析器指定由倒置索引覆蓋的整個集合或單個欄位。檢視的概念在 ArangoSearch 中是獨有的,更多的普通檢視(例如:SQL檢視、materialized檢視)可能在後面的 ArangoDB 版本中陸續介紹。

ArangoSearch-檢視的概念:

在本版本中,ArangoSearch 包括以下功能:

  • 基於相關性的匹配

  • 短語和字首匹配

  • 使用布林值進行復雜搜尋

  • 相關執行時調優

  • 搜尋查詢與所有資料模型和訪問模式的均可完美組合

ArangoSearch 不單單是一個搜尋引擎,而且還是一個相似度排名引擎。我們集成了兩種排名演算法(例如:BM25 and TFIDF),你可以對結果進行排名或者提升某些查詢引數,以微調搜尋結果的相關性。此外,這個版本的 ArangoSearch 已經包括了12種語言的解析器,包括:英語、漢語、德語、西班牙語、芬蘭語、荷蘭語等等。

將 ArangoSearch和 ArangoDB’s 圖形資料功能相結合,可以很好加強在其欺詐檢測、知識圖、語義搜尋的應用,甚至在基因組資料的醫學行業都有很好的用例。

ArangoSearch支援叢集,可以用於超過單臺機器的資料集。在設定叢集是,協調器始終負責查詢規劃、優化和執行,將傳輸的查詢資料引導到正確的 DBServer 以在本地處理查詢。使用此體系結構,可以針對駐留在不同計算機上的資料執行更加高效的搜尋查詢。


我們希望你會發現 ArangoSearch 是 ArangoDB 功能非常有用的拓展功能。

瞭解更多關於搜尋的新功能請檢視ArangoSearch 教程 或者根基您的知識能力檢視 ArangoSearch 的架構。

完整的 GeoJSON 支援和 Google S2索引

我們想強調的另外一點是 ArangoDB 在地址位置應用諸多提升。ArangoDB在很久以前就支援了點和距離的簡單地理查詢。隨著 ArangoDB 3.4 釋出和 GeoJSON 的支援,你現在可以有構建基於地理位置查詢的高精度應用。

GetJSON的支援包括所有的原始地理資訊例如:多點資訊、多邊形資訊和很多處理地理位置資訊的相關方法例如:GEO_DISTANCE、GEO_CONTAINS、GEO_EQUALS和GEO_INTERSECTS。當然,你可以將這些新得地理空間功能與所有支援的資料模型以及ArangoSearch 的功能相結合。

你可以通過 GeoJSON 教程來試一試。

地理資訊查詢的結果會通過一個小外掛`OpenStreetMap`顯示出來,這有助於快速檢視瀏覽結果。

新的查詢分析器

優化複雜的查詢可能非常耗時。為了優化這個過程,我們建立了一個 AQL 的查詢分析器。AQL 查詢分析器顯示完整的查詢配置檔案,包括有關在查詢的每個階段中花費的時間的詳細執行時的系統資訊。使用新的 AQL 查詢分析器,你可以通過新增索引,重新構建查詢或優化資料結構,對潛在的優化做出明確的決策。顯示的執行計劃包括三個新列:

  • 呼叫,每個查詢階段執行的次數;

  • 專案,給定階段的臨時結果行數;

  • 執行時,本次活動中上花費的總時間。

可以通過`db._profileQuery()`或單機 WebUI 的 「查詢」選項卡中選擇「配置檔案」按鈕在 shell 中使用查詢分析器。

想了解更多查詢優化和分析器的更多資訊請檢視 AQL 查詢分析器教程

與 "Explain" 命令想法的是,"Profiler"執行查詢並顯示 AQL 每個步驟與實際實際的時間花費。我們希望在這樣操作有助於簡化查詢優化。

查詢分析器輸出資訊(控制檯):

查詢分析器輸入資訊(WebUI)

新的流式遊標

在過去的幾個月中,我們收到了很多需求,這些需求希望能夠在查詢很多資料時,尋求一種方式相應時間更快的方法。為了這些需求,我們在 ArangoDB 中添加了流式遊標。通過使用流式遊標,你可以在伺服器上獲取計算的結果;你沒有必要等待查詢結果完全執行,這樣使用者就可以更快的看到顯示結果。此外,使用流式遊標查詢的資料要比使用記憶體查詢的更大。

叢集體驗提升

在過去的幾年中,我們改進並且豐富了 ArangoDB 的叢集功能。雖然我們知道這個功能不是很完美,但是他並沒有阻止我們在每個版本中對其進行改進。 如果你使用 ArangoDB 的叢集功能並且升級到的3.4版本,你將體會到關於叢集的最新功能。

本次功能的改進後,叢集中可以防止不必要的行為,還是可以更快的實現叢集啟動,更快的同步、和更快的進行資料查詢。徹底優化了內部協議和請求處理:Distributed Collect只是叢集範圍查詢中的例子。

對於3.4版本,我們對於叢集的內部進行了徹底的優化,以便於更好的維護鼓掌轉移和集合管理。這樣做導致某些情況下的穩定性提高,操作更塊。

此外,使用最近釋出的ArangoDB Kubernetes運算子,在 k8s 中部署 ArangoDB 只需要一行簡單的命令`kubectl apply -f cluster.yaml`。剩下的操作會被 k8s 和 ArangoDB 運算子自動完成。

在服務不中斷的情況下,升級部署只需要更改 YAML 檔案中的 Docker 映象名稱即可。

想要了解更多關於 ArangoDB Kubernetes 操作符 的相關操作請檢視 快速入門

預設資料儲存引擎是 RocksDB

新安裝的 ArangoDB,從3.4版本開始將 RockDB 作為預設的資料儲存引擎,如果你從以前的版本升級到3.4版本,ArangoDB的引擎將會和你以前的版本設定的一致。我們在優化ArangoDB 中整合的 RocksDB 投入了大量的工作,使其可以更快,並且擴充套件在配置方面的其他可能性.相關重要的改進如下:

  • 優化二進位制儲存格式:新格式針對 RocksDB 進行了優化,新安裝的 ArangoDB 預設採取這種格式。 新格式的一個主要優點是大大提高了資料插入效能。

  • 可選快取:使用者現在可以給每個集合指定一個新屬性 cacheEnabled 來定義要在記憶體中快取的文件和主索引值。這種改進使得在多種情況下,效能將得到顯著提升,特別是在點查詢方面。

  • 減少資料拷貝時間:針對自動故障恢復、叢集和 DC2DC 設定提供了更好的體驗。

我們已經進行了許多優化,使我們的 RocksDB 整合成為預設的儲存引擎。我們相信你們也會很喜歡他。

總之,ArangoDB 3.4提供了40多個優化和改進。我們希望每個人都能從新版中獲得新的體驗。

ArangoDB 3.4 社群版下載

ArangoDB 3.4 企業版下載