ORACLE Text 文本檢索:(先要建立CONTEXT或CTXCAT索引,然後如下)(還可以在from前加,SCORE(10)來觀察檢索到的項目的得分)
1.單詞的精確匹配檢索
select cbid,title(列名) from emergency(表名) where contains(title,'關於')>0; 是從title中檢索含詞“關於”的cbid和title欄位。
2.多個單詞精確匹配
select cbid,title form emergency where contains(title,'關於 AND 請示')>0;是從title中檢索含詞“關於”和“請示”的上述欄位。
也可select cbid,title form emergency where contains(title,'關於 AND 請示',NULL)>0;意思同上,不是檢索短語而是兩個單詞,注意!
3.短語精確匹配
select cbid,title(列名) from emergency(表名) where contains(title,'doctor visits',NULL)>0;將精確匹配doctor visits短語
如果要用AND,OR,MINUS等保留字,應該使用轉義符{},如doctor {and} visits
4.搜尋互相接近的詞語
select cbid,title(列名) from emergency(表名) where contains(title,'關於 NEAR 請示')>0;
select cbid,title(列名) from emergency(表名) where contains(title,'NEAR((關於,請示),10)')>0; 是指指定的兩個詞在10個詞之內
5.在搜尋中使用萬用字元(多字元萬用字元是%,單字元萬用字元是-)
select cbid,title(列名) from emergency(表名) where contains(title,'worker%')>0;是檢索worker開頭的單詞,單字通配最多擴充3字元
6.模糊比對搜尋
select cbid,title(列名) from emergency(表名) where contains(title,'?關於')>0; (前面得加一個問號)
7.使用ABOUT運算子來搜尋文檔的主題
select cbid,title form emergency where contains(title,'ABOUT(房屋)',NULL)>0;
注意以上如果是用CONTEXT索引時,基表更新時文本索引並不更新,為了使索引同步,應該執行CTX_DLL程式包的SYNC_INDEX過程如下:
EXECUTE CTX_DLL.SYNC_INDEX('REVIEW_INDEX');