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
- Oracle Text SQL Statements and OperatorsOracleSQL
- CSS:text-transform(轉)CSSORM
- Oracle Text演算法模型Oracle演算法模型
- Oracle 安裝Full Text searchOracle
- CSS文字:text-justify(轉)CSS
- CSS文字:text-autospace(轉)CSS
- CSS文字:text-overflow(轉)CSS
- CSS文字:text-indent(轉)CSS
- CSS:text-shadow(轉)CSS
- ORACLE TEXT DATASTORE PREFERENCE(一) 【ORACLE 全文索引】OracleAST索引
- Oracle Text 學習筆記(11G)<一> :手工建立TEXTOracle筆記
- CSS文字:text-align(轉)CSS
- text-underline-position(轉)
- ORACLE TEXT安裝與解除安裝Oracle
- Oracle Text Health Check (Doc ID 823649.1)Oracle
- 手工建立oracle text全文檢索元件Oracle元件
- 文字格式轉換工具:Text Workflow for macMac
- CSS文字:text-kashida-space(轉)CSS
- mac文字轉換軟體:Text Workflow for macMac
- Text Workflow for Mac(Mac文字轉換軟體)Mac
- 在C++Builder使用TTS(Text To Speech) (轉)C++UITTS
- MySQL TEXT、DATE、SET 資料型別(轉)MySql資料型別
- 測試庫csdb安裝ORACLE_TEXT元件Oracle元件
- CSS text-transform字元大小寫轉換CSSORM字元
- [轉]基於Sublime Text搭建Python IDEPythonIDE
- 關於.Text Blog 0.94的安裝 (轉)
- 探究 Text Kit 和 Core Text 的前世今生 (Text Kit 篇)
- Oracle如何根據SQL_TEXT生成SQL_IDOracleSQL
- Markdown | win10系統MarkEditor轉Sublime Text 3Win10
- text/html和text/plain的區別HTMLAI
- jQuery text()jQuery
- jQuery :textjQuery
- Text Representation
- EXCEL中日期格式轉換為文字格式-函式TEXTExcel函式
- Oracle 20c 的 In-Memory 新特性 Spatial 和 Text 支援Oracle
- CSS 文字裝飾 text-decoration & text-emphasisCSS
- PR語音轉字幕轉換外掛Speech to Text for Premiere Pro 2022REM