| 方案 | 原理 | 適用場景 | 語法範例 |
| Oracle Text 全文索引 | 建立 Context 索引,詞彙倒排 | 大文本欄位、文檔搜尋 | CREATE INDEX idx_doc ON docs(content) INDEXTYPE IS CTXSYS.CONTEXT; SELECT * FROM docs WHERE CONTAINS(content, '關鍵字') > 0; |
| 反向鍵索引 | 將鍵值位元組反轉存儲,使 '%abc%' 變 'cba%' 可用範圍掃描 | 固定長度代碼、手機號後段搜尋 | CREATE INDEX idx_rev ON t(REVERSE(col)); SELECT * FROM t WHERE REVERSE(col) LIKE REVERSE('%abc%'); |
| 應用層 N-gram 拆解 | 寫入時將字串拆為 2-3 gram 存入對應表,查詢時精確匹配 | 中文姓名/地址模糊搜尋 | 需應用程式協同設計,寫入擴充表,查詢轉為等值 JOIN |
| 虛擬欄位 + 函數索引 | 12c+ 虛擬欄位存儲 REVERSE/SUBSTR 結果並建索引 | 固定模式後綴/前綴搜尋 | ALTER TABLE t ADD (rev_col AS (REVERSE(col))); CREATE INDEX idx_rev ON t(rev_col); |