Oracle Oracle全文檢索功能建立

2021-07-10 12:31:38 字數 1657 閱讀 6215

oracle text(全文檢索) 可以把任何文件和檔案編入索引,從而是訪問更快,更容易檢索相關的資訊

1.檢查資料庫是否具有全文檢索功能(這是針對已經建成使用的資料庫)

使用contains函式的時候,若沒有全文檢索則會報錯的。

1. --使用如下指令碼。

sql> connect sys/password@tns_ as sysdba

sql> spool text_install.txt

sql> @?/ctx/admin/catctx.sql ctxsys sysaux temp nolock

--指令碼中各個引數含義:

ctxsys - is the ctxsys user password

sysaux - is the default tablespace for ctxsys

temp - is the temporary tablespace for ctxsys

lock|nolock - ctxsys user account will be locked or not

--指定預設的安裝語言

無此步驟,後續新建索引這裡將報錯 

如此錯誤drg-10700: preference does not exist: ctxsys.default_wordlist

--如果使用us作為預設語言,執行drdefus.sql.

sql> connect ctxsys/password@tns_alias

sql> @?/ctx/admin/defaults/drdefus.sql

sql> spool off

3.建立中文

語法分析器

exec ctx_ddl.create_preference ('chinalexer', 'chinese_lexer');

4、建立全文索引

create index yu_test_index on yu_test(name) indextype is ctxsys.context parameters('lexer chinalexer');

這句話的意思就是,在yu_test_index表中的name欄位上建立索引,索引類系那個為context型別,該索引用到的分析器為前面定義的my_lexer,該索引用到的過濾片語為前面定義得my_stoplist。

5、使用索引

select

* from

yu_test 

where

contains

(name

,'重慶'

)>0; 

6.索引優化

前面已經能夠進行檢索了,現在就是對索引進行優化

當我們需要修改表中的資料是不會同步更新資料的,需要我們在程式中手動的更新,可以寫乙個oracle的觸發器,當新增、刪除、修改操作時,進行索引更新。也可以定時進行更新。

索引同步:

exec ctx_ddl.sync_index('yu_test_index')

索引優化:

exec ctx_ddl.optimize_index('yu_test_index','full')

Django Docker完成es全文檢鎖

使用docker安裝elasticsearch 1.獲取elasticsearch ik映象 從倉庫拉取映象 sudo docker image pull delron elasticsearch ik 2.4.6 1.0 解壓教學資料中本地映象 sudo docker load i elastic...

如何使用SQL Server 2000全文檢索

一 如何在sql中啟用全文檢索功能 1 驗證全文檢索服務是否安裝 通過儲存過程fulltextserviceproperty 返回有關全文服務級別屬性的資訊 來驗證搜尋服務 全文元件 是否安裝。如select fulltextserviceproperty isfulltextinstalled 返...

java lucene實現全文檢索(四)索引檢索

將輸入的查詢詞拆分後再傳入通過短語查詢進行檢索 param indexpath 索引目錄 param searchstr 拆詞後的字元集合 param limit 查詢條數 throws ioexception public static void indexsearch string indexp...