ORACLE TEXT(轉)
查詢文字不同於查詢資料,因為有同義詞、近義詞和反義詞。你可能希望搜尋互相接近的詞或搜尋相關聯的詞。如果僅使用標準的關係操作符,要進行這些查詢是非常困難的。通過SQL進行擴充,使其包含文字索引,則ORACLE TEXT允許使用者就文字提出非常複雜的問題。
文字索引主要有兩種CONTEXT和CTXCAT
用如下方式建立索引
CREATE INDEX REVIEW_CONTEXT_INDEX ON BOOK_REVIEW_CONTEXT(REVIEW_TEXT) INDEXTYPE IS CTXSYS.CONTEXT;
或
CREATE INDEX REVIEW_CTXCAT_INDEX ON BOOK_REVIEW_CTXCAT(REVIEW_TEXT) INDEXTYPE IS CTXSYS.CTXCAT;
建立好索引後就可以進行文字查詢
select title from book_review_context where contains(review_text,'property')>0
CONTAINS函式有兩個引數即列名和搜尋串,它檢查review_text列的文字索引。如果在review_text列的文字索引中找到單詞'property'則資料庫返回的得分大於0,並返回匹配的TITLE值。
如果建立的是CTXCAT索引就用CATSEARCH函式
select title from book_review_ctxcat where catsearch(review_text,'property',null)>0;
可使用的文字查詢表示式有以下幾種:
1。單詞的精確匹配搜尋
select title from book_review_context where contains(review_text,'property')>0
2。多個單詞精確匹配的搜尋
可以使用AND連線多個單詞
select title from book_review_context where contains(review_text,'property and harvests')>0
還可以使用&但是在SQLPLUS裡必須執行set define off否則&將被視作變數
set define off
select title from book_review_context where contains(review_text,'property & harvests')>0
對於CTXCAT索引AND完全可以省略
select title from book_review_ctxcat where catsearch(review_text,'property harvests',null)>0;
除AND外還可以使用OR運算子在ORACLE TEXT中OR是一根豎線(|)
因此下面的兩個查詢是等同的
select title from book_review_context where contains(review_text,'property or harvests')>0
select title from book_review_context where contains(review_text,'property | harvests')>0
但是要注意CATSEARCH函式不支援OR只支援‘|’符號;
ACCUM(累加)提供了另一種組合搜尋的方法。等價於逗號,所以下面的兩個查詢是等價的
select title from book_review_context where contains(review_text,'property accum harvests')>0
select title from book_review_context where contains(review_text,'property , harvests')>0
但是CATSEARCH函式呼叫支援ACCUM語法但不應該使用,因為CATSEARCH不計算用來與閥值進行比較的得分;
MINUS運算子從第一項搜尋的得分中減去第二項搜尋的得分等價於減號,所以下面的兩個查詢是等價的
select title from book_review_context where contains(review_text,'property minus harvests')>0
select title from book_review_context where contains(review_text,'property - harvests')>0
可以用圓括號來闡明搜尋條件內的邏輯
select title from book_review_context where contains(review_text,'house or (workers and harvests')>0
3。短語精確匹配的搜尋
在進行短語搜尋的時候應將整個短語作為搜尋串的一部分
select title from book_review_context where contains(review_text,'doctor visits')>0
若搜尋的短語中包含ORACLE TEXT內的保留字,則必須使用花括號括住相應的保留字
select title from book_review_context where contains(review_text,'taengdmg {and} dfdng)>0
4。搜尋互相接近的詞
select title from book_review_context where contains(review_text,'property near harvests')>0
可以使用關鍵詞NEAR也可以用;代替NEAR
5。在搜尋中使用萬用字元
select title from book_review_context where contains(review_text,'worker%')>0
select title from book_review_context where contains(review_text,'work___)>0
6。搜尋具有相同詞根的詞
select title from book_review_context where contains(review_text,'$worker')>0
7。模糊匹配搜尋
select title from book_review_context where contains(review_text,'?worker')>0
8。搜尋發音相似的詞
select title from book_review_context where contains(review_text,'!worker')>0
9。使用ABOUT運算子
在ORACLE TEXT中可以搜尋文件的主題
select review_text from book_review_context where contains(review_text,'about(mdgd)')>0
10。索引集
為了建立一個名為reviews的索引集可使用CREATE_INDEX_SET過程
execute ctx_ddl.create_index_set('reviews)
可以通過add_index過程新增索引到索引集中了
execute ctx_ddl.add_index('reviewers','reviewer');
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-242302/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle Text簡介Oracle
- 文字格式轉換工具:Text Workflow for macMac
- CSS text-transform字元大小寫轉換CSSORM字元
- mac文字轉換軟體:Text Workflow for macMac
- Text Workflow for Mac(Mac文字轉換軟體)Mac
- ORACLE EVENTS(轉)Oracle
- Oracle Partitioning(轉)Oracle
- ORACLE DSI(轉)Oracle
- Oracle 轉MySqlOracleMySql
- PR語音轉字幕轉換外掛Speech to Text for Premiere Pro 2022REM
- oracle轉義字元Oracle字元
- Java初探Oracle(轉)JavaOracle
- ORACLE FREELIST HWM(轉)Oracle
- oracle列轉行Oracle
- oracle myintis 轉義Oracle
- Oracle轉換PostgresOracle
- oracle cache table(轉)Oracle
- Oracle審計(轉)Oracle
- Oracle Pipelined Table(轉)Oracle
- Oracle 20c 的 In-Memory 新特性 Spatial 和 Text 支援Oracle
- Markdown | win10系統MarkEditor轉Sublime Text 3Win10
- Oracle實驗(02):轉換 & 轉譯Oracle
- ORACLE系統概述(轉)Oracle
- Oracle 特殊字元轉義Oracle字元
- Oracle 查詢轉換Oracle
- ORACLE資料加密(轉)Oracle加密
- ORACLE備份策略(轉)Oracle
- Oracle Pipelined Table Functions(轉)OracleFunction
- Oracle 巢狀表(轉)Oracle巢狀
- Oracle's V$ Views(轉)OracleView
- EXCEL中日期格式轉換為文字格式-函式TEXTExcel函式
- text
- Color Convert ---- Sublime Text 3多種顏色轉換外掛
- 上傳Text文件並轉換為PDF(解決亂碼)
- oracle函式手冊(轉)Oracle函式
- ORACLE備份策略二(轉)Oracle
- oracle: default role 詳解(轉)Oracle
- oracle中多列轉行Oracle