1. 程式人生 > 資料庫 >SequoiaDB|巨杉資料庫】全文索引

SequoiaDB|巨杉資料庫】全文索引

【SequoiaDB|巨杉資料庫】全文索引


)
全文索引用於在大量文字中進行快速的檢索。在使用普通索引時,搜尋特定的關鍵字需要使用正則表示式。當文字是整本書或是整篇文章時,正則表示式的效率較低。而全文索引會建立一個詞庫,統計每個詞條出現的頻率和位置。在搜尋某詞時,就可以快速定位到該詞出現的位置,提升檢索效率。

SequoiaDB 全文檢索能夠實現近實時的搜尋能力,即一個新的文件從被索引到可被搜尋會有一定的延遲。延遲取決於索引的速度。主要分兩種情況:

在空集合或者只有很少量資料的集合上建立全文索引。在寫入壓力不是太大的情況下,通常在若干秒(典型值如 1~5 秒)內,新增的資料即可被搜尋到。

建立索引時,集合中已存在大量的資料。此時要全量索引集合中的所有文件,耗時從分鐘級到若干小時不等,取決於資料規模、搜尋伺服器效能等因素。如果在全量索引完成之前進行查詢,只能查到部分結果。
基本原理
SequoiaDB 使用 Elasticsearch 作為全文檢索引擎實現全文索引。全文索引與普通索引的最大區別在於,索引資料不是存在於資料節點的索引檔案中, 而是儲存在 Elasticsearch 中。在使用該索引進行查詢的時候,會在 Elasticsearch 中進行搜尋,資料節點根據其返回的結果,再到本地查詢資料。實現時涉及以下三個角色:

SequoiaDB 資料節點:儲存資料
Elasticsearch 叢集:用於儲存全文索引資料,以及在索引中進行搜尋

介面卡 sdbseadapter:作為 SequoiaDB 資料節點與 Elasticsearch 互動的橋樑,進行資料轉換與傳輸等