步驟:
1. 設定詞法分析器(lexer)
保證登入使用者具有和CTXSYS使用者相應的權許可權和CTXAPP角色,或者直接用CTXSYS使用者登入,語句如下
BEGIN
ctx_ddl.create_preference ('context_lexer', 'chinese_vgram_lexer');
END;
其中藍色部分為詞法分析器名(可自己定),紅色部分為詞法分析器(可選basic_lexer,chinese_vgram_lexer,chinese_lexer三種,其中預設為basic_lexer,具體可查閱相關資料)
2. 對相應的表欄位建立全文索引(這裡以表ylqx_reg中的欄位ggxh為例)
用與該表相應的使用者登入,用以下語句建立全文索引
Create Index context_ind_ylqx_reg On ylqx_reg(ggxh) Indextype Is
Ctxsys.Context Parameters('lexer context_lexer')
這裡可以通過
Select Token_Text, Token_Count From Dr$context_ind_ylqx_reg$i
語句查看詞法分析器分析的結果
3. 對已建立的索引進行自動更新和自動最佳化,通過兩個job實現,如下(這裡要保證登入使用者具有對ctx_ddl包的訪問權,可用系統使用者登入給相應使用者授權)
3.1.自動更新索引job,如(其中Interval中sysdate+(1/24/4)表示每隔15分鐘更新一次)
3.2.自動最佳化索引job,如(其中Interval中sysdate+1表示每隔一天最佳化一次)
其他相關資料
以下是oracle全文索引的一些資訊
oracle中關於全文索引中score的計算方法資訊為:
The standard Salton formula used to assign each score is as follows:
3f(1+log(N/n))
Where...
f = the frequency of the search term in the document,
N = the total number of "rows in the table" (or documents in the library), and
n = the number of rows (or documents) which contain the search term.
Score can be between 0 and 100, but the top-scoring document in the query will not
necessarily have a score of 100 -- scoring is relative, not absolute. This means that scores
are not compatible across indexes, or even across queries on the same index.
建立mytest表,對score值進行測試,如果如下:
表mytest如下
查詢“中國”時得到的score值如下
用命令
Begin
Ctx_Ddl.Create_Preference('my_lexer2', 'chinese_lexer');
End;
Create Index Myindex On mytest(Name) Indextype Is Ctxsys.Context Parameters('lexer my_lexer2')
產生關鍵字資訊如下
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/lixiaowen2007/archive/2008/12/27/3624541.aspx