1.Oracle Text索引類型
我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、惠濟(jì)ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的惠濟(jì)網(wǎng)站制作公司
索引類型 |
描述 |
支持的首選項(xiàng)與參數(shù) |
查詢運(yùn)算符 |
注意事項(xiàng) |
CONTEXT |
當(dāng)文本由大型,連貫的文檔(例如,MS Word,HTML或純文本)組成時(shí),請使用此索引來構(gòu)建文本檢索應(yīng)用程序。 可以通過多種方式自定義索引。 在對基表進(jìn)行插入,更新和刪除操作之后,此索引類型需要CTX_DDL.SYNC_INDEX。 |
支持所有CREATE INDEX首選項(xiàng)和參數(shù),但I(xiàn)NDEX SET除外。 支持的參數(shù):索引分區(qū)子句格式,字符集和語言列 |
CONTAINS CONTEXT語法支持一組豐富的操作。 將CTXCAT語法與查詢模板一起使用。 |
支持所有文檔服務(wù)和查詢服務(wù)。
支持分區(qū)文本表的索引。
支持CREATE INDEX的FILTER BY和ORDER BY子句以索引結(jié)構(gòu)化的列值,以更有效地處理混合查詢。 |
CTXCAT |
使用此索引可以更好地混合小型文檔和文本片段的查詢性能。 為了提高混合查詢的性能,請?jiān)诨碇邪ㄆ渌?,例如?xiàng)目名稱,價(jià)格和描述。 此索引類型是事務(wù)性的。 在插入,更新或刪除基表之后,它會自動更新自己。 不需要CTX_DDL.SYNC_INDEX。
|
INDEX SET LEXER STOPLIST STORAGE WORDLIST(僅日語數(shù)據(jù)支持prefix_index屬性。) 不支持:格式,字符集和語言列 表和索引分區(qū) |
CATSEARCH CTXCAT語法支持邏輯運(yùn)算,短語查詢和通配符。 將CONTEXT語法與查詢模板一起使用。 支持主題查詢。 |
該索引比CONTEXT索引更大,構(gòu)建時(shí)間也更長。 CTXCAT索引的大小與要建立索引的文本總數(shù),索引集中的索引數(shù)以及被索引的列數(shù)有關(guān)。 在將索引添加到索引集中之前,請仔細(xì)考慮您的查詢和資源。
CTXCAT索引不支持索引分區(qū),文檔服務(wù)(突出顯示,標(biāo)記,主題和要點(diǎn))或查詢服務(wù)(解釋,查詢反饋和瀏覽詞)。 |
CTXRULE |
使用此索引來構(gòu)建文檔分類或路由應(yīng)用程序。 在查詢表上創(chuàng)建此索引,查詢在其中定義分類或路由條件 |
|
MATCHES |
使用MATCHES運(yùn)算符可以對單個(gè)文檔進(jìn)行分類(純文本,HTML或XML)。 MATCHES將文檔轉(zhuǎn)換為一組查詢,并在索引中找到匹配的行。
要使用簡單分類或基于規(guī)則的分類構(gòu)建文檔分類應(yīng)用程序,請創(chuàng)建CTXRULE類型的索引。 該索引使用MATCHES運(yùn)算符對純文本,HTML或XML文檔進(jìn)行分類。 將定義的查詢集存儲在索引的文本表中。 |
Oracle Text索引是Oracle數(shù)據(jù)庫domain index。 要構(gòu)建查詢應(yīng)用程序,可以創(chuàng)建混合文本和結(jié)構(gòu)化數(shù)據(jù)列的CONTEXT類型的索引,并使用CONTAINS運(yùn)算符進(jìn)行查詢。
從填充的文本表中創(chuàng)建索引。 在查詢應(yīng)用程序中,表必須包含文本或指向所存儲文本位置的指針。 文本通常是文檔的集合,但也可以是小的文本片段。
注意:如果要構(gòu)建使用XML數(shù)據(jù)的新應(yīng)用程序,Oracle建議您使用XMLIndex,而不是CTXRULE。
使用標(biāo)準(zhǔn)SQL將Oracle Text索引創(chuàng)建為Oracle數(shù)據(jù)庫的一種可擴(kuò)展索引。 這意味著Oracle Text索引的運(yùn)行方式類似于Oracle Database索引。 它具有引用它的名稱,并且可以使用標(biāo)準(zhǔn)SQL語句進(jìn)行操作。
創(chuàng)建Oracle Text索引的好處是使用CONTAINS,CATSEARCH和MATCHES運(yùn)算符可以快速響應(yīng)文本查詢。 這些運(yùn)算符分別查詢CONTEXT,CTXCAT和CTXRULE索引類型。
注意:由于啟用了透明數(shù)據(jù)加密的列不支持域索引,因此請勿將其與Oracle Text一起使用。 但是,可以在存儲在啟用了透明數(shù)據(jù)加密的表空間中的表的列上創(chuàng)建Oracle Text索引。
2.Oracle Text CONTEXT INDEX的結(jié)構(gòu)
Oracle Text通過將所有單詞轉(zhuǎn)換為標(biāo)記來索引文本。 Oracle Text CONTEXT索引的一般結(jié)構(gòu)是一個(gè)反向索引,其中每個(gè)標(biāo)記都包含包含該標(biāo)記的文檔(行)列表。
例如,在單個(gè)初始索引操作之后,單詞DOG可能具有如下條目:
這意味著DOG一詞包含在存儲文檔一,三和五的行中。
合并詞和主題索引
默認(rèn)情況下,Oracle Text使用英語和法語,用單詞信息對主題信息進(jìn)行索引。 可以使用ABOUT運(yùn)算符查詢主題信息。 還可以啟用和禁用主題索引。
3.Oracle文本索引過程
通過使用CREATE INDEX語句創(chuàng)建索引的Oracle文本索引來啟動索引過程,該索引根據(jù)您的參數(shù)和首選項(xiàng)進(jìn)行組織。
索引編制過程如圖3-1所示。 此過程是由不同索引對象作用的數(shù)據(jù)流。 每個(gè)對象對應(yīng)于可以在CREATE INDEX或ALTER INDEX的參數(shù)字符串中指定的索引首選項(xiàng)類型或節(jié)組。
3.1Datastore(存儲)對象
該流從數(shù)據(jù)存儲區(qū)開始,因?yàn)樗鼈兏鶕?jù)您的數(shù)據(jù)存儲區(qū)首選項(xiàng)將文檔存儲在系統(tǒng)中,因此會讀取這些文檔。 例如,如果將數(shù)據(jù)存儲區(qū)定義為FILE_DATASTORE,則流將通過從操作系統(tǒng)讀取文件開始。 還可以將文檔存儲在Internet上或Oracle數(shù)據(jù)庫中。 無論文件實(shí)際位于何處,Oracle數(shù)據(jù)庫中的文本表都必須始終指向文件。
3.2Filter(過濾)對象
流通過filter。 FILTER首選項(xiàng)確定發(fā)生了什么。 可以通過以下方式之一對流進(jìn)行操作:
- 當(dāng)指定NULL_FILTER首選項(xiàng)類型或格式列的值為IGNORE時(shí),不會進(jìn)行任何過濾。 純文本,HTML或XML的文檔無需過濾。
- 當(dāng)指定AUTO_FILTER首選項(xiàng)類型或格式列的值為BINARY時(shí),格式化的文檔(二進(jìn)制)將被過濾為標(biāo)記文本。
3.3Sectoner(分段)對象
過濾后,標(biāo)記的文本將通過分段器,該分段器將流分為文本和分段信息。 分段信息包括分段在文本流中的開始和結(jié)束位置。 提取的分段的類型由分段組類型決定。
文本被傳遞到詞法分析器。 節(jié)信息直接傳遞給索引引擎,索引引擎稍后將使用它。
3.4Lexer(詞法分析器)對象
通過使用一種Oracle Text詞法分析器類型來指定要建立索引的文本的語言,可以創(chuàng)建詞法分析器首選項(xiàng)。 詞法分析器根據(jù)您的語言將文本分為標(biāo)記。 這些標(biāo)記通常是單詞。 要提取令牌,詞法分析器使用您的詞法分析器首選項(xiàng)中定義的參數(shù)。 這些參數(shù)包括分隔令牌的字符的定義,例如空格。 參數(shù)還包括將文本轉(zhuǎn)換為全部大寫還是將其保留為混合大小寫。
啟用主題索引后,詞法分析器將分析您的文本以創(chuàng)建主題標(biāo)記以進(jìn)行索引。
3.5索引引擎
索引引擎創(chuàng)建反向索引,該反向索引將令牌映射到包含令牌的文檔。 在此階段,Oracle Text使用您指定的stoplist從索引中排除stopwords或stopthemes 。 Oracle Text還使用在WORDLIST首選項(xiàng)中定義的參數(shù)。 這些參數(shù)告訴系統(tǒng)如何創(chuàng)建前綴索引或子字符串索引(如果啟用)。
4.關(guān)于索引列的更新
在Oracle Database 12c第2版(12.2)之前的版本中,如果對Oracle Text索引所基于的列進(jìn)行了更新,則在索引同步之前,該文檔不可用于搜索操作。 用戶查詢無法搜索該文檔。 從Oracle Database 12c第2版(12.2)開始,可以指定更新后必須可搜索文檔,而無需立即執(zhí)行索引同步。 在同步索引之前,查詢將使用舊索引條目來獲取舊文檔的內(nèi)容。 索引同步后,用戶查詢將獲取更新文檔的內(nèi)容。
索引的ASYNCHRONOUS_UPDATE選項(xiàng)可以在更新后保留文檔的舊內(nèi)容,然后使用該索引來回答用戶查詢。
5.分區(qū)表和索引
在分區(qū)文本表上創(chuàng)建分區(qū)CONTEXT索引時(shí),必須按范圍對表進(jìn)行分區(qū)。 不支持哈希,合成和列表分區(qū)。
可以創(chuàng)建一個(gè)分區(qū)的文本表,以按日期對數(shù)據(jù)進(jìn)行分區(qū)。 例如,如果應(yīng)用程序維護(hù)著一個(gè)大型的過時(shí)新聞文章庫,則可以按月份或年份對信息進(jìn)行分區(qū)。 分區(qū)簡化了大型數(shù)據(jù)庫的可管理性,因?yàn)椴樵?,插入,更新,刪除操作以及備份和恢復(fù)可以作用于單個(gè)分區(qū)。
在具有多個(gè)表集的本地CONTEXT索引上,Oracle Text支持Oracle數(shù)據(jù)庫支持的分區(qū)數(shù)。
若要查詢分區(qū)表,請?jiān)诓樵兂R?guī)表時(shí)在SELECT語句的WHERE子句中使用CONTAINS。 可以查詢整個(gè)表或單個(gè)分區(qū)。 但是,如果使用ORDER BY SCORE子句,則Oracle建議查詢單個(gè)分區(qū),除非包含將查詢限制為單個(gè)分區(qū)的范圍謂詞。
6.在線索引
當(dāng)由于正在進(jìn)行的更新而無法鎖定基表以建立索引時(shí),可以使用CREATE INDEX語句的ONLINE參數(shù)在線創(chuàng)建索引。 這樣,具有頻繁插入,更新或刪除功能的應(yīng)用程序不必停止更新基表以建立索引。
在索引過程的開始和結(jié)束時(shí)基表被鎖定的時(shí)間很短。
7.并行索引
Oracle Text通過CREATE INDEX語句支持并行索引。
在非分區(qū)表上輸入并行索引語句時(shí),Oracle Text將基本表拆分為臨時(shí)分區(qū),生成子進(jìn)程,并將子級分配給分區(qū)。然后,每個(gè)子級都為其分區(qū)中的行建立索引。將基表切片為分區(qū)的方法由Oracle確定,不受直接控制。對于實(shí)際產(chǎn)生的子進(jìn)程的數(shù)目也是如此,這取決于機(jī)器功能,系統(tǒng)負(fù)載,init.ora設(shè)置和其他因素。由于這些變量,實(shí)際的并行度可能與請求的并行度不匹配。
因?yàn)樗饕且豁?xiàng)密集的I / O操作,所以當(dāng)具有分布式磁盤訪問權(quán)限和多個(gè)CPU時(shí),并行索引最有效地減少了索引時(shí)間。并行索引只能通過CREATE INDEX語句才能影響初始索引的性能。它不影響使用ALTER INDEX的插入,更新和刪除操作,并且對查詢性能的影響最小。
由于并行索引減少了初始索引時(shí)間,因此對于以下情況很有用:
- 產(chǎn)品包含Oracle Text索引時(shí)的數(shù)據(jù)暫存
- 基于大數(shù)據(jù)收集的應(yīng)用程序的快速初始啟動
- 應(yīng)用程序測試,當(dāng)您在開發(fā)應(yīng)用程序時(shí)需要測試不同的索引參數(shù)和架構(gòu)時(shí)
8.索引和視圖
Oracle SQL標(biāo)準(zhǔn)不支持在視圖上創(chuàng)建索引。 如果需要索引內(nèi)容在不同表中的文檔,請使用USER_DATASTORE對象創(chuàng)建數(shù)據(jù)存儲首選項(xiàng)。 使用此對象,您可以定義一個(gè)在索引時(shí)間從不同表合成文檔的過程。
新聞名稱:關(guān)于OracleText索引
網(wǎng)頁網(wǎng)址:http://www.rwnh.cn/article46/jdcihg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、App設(shè)計(jì)、云服務(wù)器、App開發(fā)、商城網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)