達夢資料庫全文索引簡介
全文檢索技術是智慧資訊管理的關鍵技術之一,其主要目的就是實現對大容量的非結構化資料的快速查詢。DM 實現了全文檢索功能,並將其作為 DM 伺服器的一個較獨立的元件,提供更加準確的全文檢索功能,較好地解決了模糊查詢方式帶來的問題。
全文索引為在字串資料中進行復雜的詞搜尋提供了有效支援,使用者可以在指定表的文字列上建立和刪除全文索引。建立全文索引後全文索引未插入任何索引資訊。當使用者填充全文索引時,系統才將定義了全文索引的文字列的內容進行分詞,並根據分詞結果填充索引。使用者可以在進行全文索引填充的列上使用 CONTAINS 謂詞進行全文檢索。
在建立全文索引成功後,假設索引名為 INDEX_NAME,則系統會自動產生如下相關的輔助表(後面簡稱 I表,P表,N表,D表):CTI
I
N
D
E
X
N
A
M
E
INDEX_NAME
INDEXNAMEI,CTI
I
N
D
E
X
N
A
M
E
INDEX_NAME
INDEXNAMEP, CTI
I
N
D
E
X
N
A
M
E
INDEX_NAME
INDEXNAMEN和 CTI
I
N
D
E
X
N
A
M
E
INDEX_NAME
INDEXNAMED,I 表主鍵為(WORD、FIRSTID、WID),用於儲存分詞結果,記錄詞的基本資訊,通過該資訊就可以快速地定位到該詞的基表記錄;P 表主鍵為(PND_DOCID),用於儲存基表發生的增量資料變化,用於修改全文索引時的增量填充。N表主鍵為(N_DOCID),用於儲存原表記錄rowid和新詞條記錄的docid的對映關係,N_DOCID 是 unique 的;D 表主鍵為(DOCID),儲存了所有將被刪除的 docid,被刪除的 docid 即將不能通過全文索引查詢到。另外,如果原表有自定義聚集主鍵,那麼P 表和 N 表會將該自定義聚集主鍵列“複製”到各自表中。
DM 全文索引建立的過程中,使用者可以為分詞器定義分詞引數,即控制分詞器分詞的數量,包括 5 種分詞引數:
- CHINESE_LEXER,中文最少分詞;
- CHINESE_VGRAM_LEXER,機械雙字分詞;
- CHINESE_FP_LEXER,中文最多分詞;
- ENGLISH_LEXER,英文分詞;
- DEFAULT_LEXER,預設分詞,為中文最少分詞。
指定中文分詞引數可以切分英文,但是指定英文分詞引數不可以切分中文,所以使用英文分詞演算法對中文文字進行分詞時,分詞結果將為空。
經過全文的建立和更新後,可以進行全文檢索,全文檢索支援的檢索方式有: - 在 CONTAINS 謂詞內支援 AND、OR 和 AND NOT 的短語查詢組合條件,例如查詢address 表中地址在洪山區太陽城的記錄:SELECT * FROM person.address WHERE CONTAINS(address1, ‘洪山區’ AND ‘太陽城’);
- 全文檢索支援單詞或者句子的檢索, 例如查詢 address 表中地址在江漢區發展大道的記錄:SELECT * FROM person.address WHERE CONTAINS(address1, ‘江漢區發展大道’);
- 不支援模糊方式的全文檢索,例如查詢“江漢區*”。
- 檢索條件子句可以和其他子句共同組成 WHERE 的檢索條件,例如查詢 address表中地址在武漢市洪山區的記錄。
SELECT * FROM person.address WHERE CONTAINS(address1, ‘洪山區’) AND city LIKE ‘%武漢市%’;
如上圖所示,DM 全文檢索時對查詢的文字做了預處理,首先根據詞文字進行最少分詞,並依據詞頻資訊找出查詢關鍵字,然後對這些關鍵字進行優先順序排序,這樣可以在第一次檢索時找出所需文字的最小結果集,然後在該結果集的基礎上再進行依次篩選,最終獲得查詢文字,這樣能較大地提高查詢效能。
相關文章
- 達夢資料庫執行緒簡單介紹資料庫執行緒
- 達夢透明分散式資料庫介紹分散式資料庫
- 國產資料庫:達夢資料庫的幾個版本介紹資料庫
- 達夢資料庫索引管理方法詳細介紹資料庫索引
- 達夢資料庫安裝資料庫
- 達夢資料庫開發資料庫
- 初識達夢資料庫資料庫
- 達夢資料庫學習資料庫
- 【達夢】Docker安裝達夢資料庫 dm8Docker資料庫
- 達夢資料庫dexp邏輯匯出工具使用介紹資料庫
- 達夢資料庫基礎知識(三)達夢資料庫記憶體結構資料庫記憶體
- 達夢資料庫學習心得資料庫
- 達夢資料庫日常運維資料庫運維
- 達夢資料庫基礎---表資料庫
- 達夢遷移工具之MySQL資料庫遷移到達夢MySql資料庫
- 達夢資料庫DM8中WITH子句的簡單用法資料庫
- DataX將Oracle資料庫資料同步到達夢資料庫Oracle資料庫
- 國產資料庫oceanBbase,達夢,金倉與mysql資料庫的效能對比 八、python讀達夢資料庫資料庫MySqlPython
- 達夢資料庫備份恢復資料庫
- 達夢7資料庫初始化資料庫
- 達夢資料庫之初步測試資料庫
- 達夢資料庫DCP培訓心得資料庫
- 配置達夢資料庫同構DBLINK資料庫
- 達夢資料庫學習筆記資料庫筆記
- 資料庫國產化實戰之達夢資料庫資料庫
- MongoDB資料庫簡介MongoDB資料庫
- WIOD資料庫簡介資料庫
- oceanbase資料庫簡介資料庫
- DBeave如何連線達夢資料庫,設定達夢驅動,真酷資料庫
- 配置ORACLE資料庫到達夢資料庫的異構DBLINKOracle資料庫
- 達夢資料庫統計資訊詳解資料庫
- 國產資料庫oceanBbase,達夢,金倉與mysql資料庫的效能對比 四、python讀mysql寫入達夢資料庫資料庫MySqlPython
- 織夢資料庫_織夢還原資料庫_織夢資料庫很卡資料庫
- CYQ.Data 支援 DaMeng 達夢資料庫資料庫
- Centos-8.2-安裝達夢資料庫CentOS資料庫
- 達夢資料庫圖形化作業管理資料庫
- 達夢資料庫odbc的安裝教程資料庫
- 達夢資料庫索引結構詳解資料庫索引