Oracle全文索引設定步驟

來源:互聯網
上載者:User
已有幾個項目組開始使用oracle的全文索引。Oracle的詞法分析器針對ZHS16GBK字元集的詞法分析尚不夠智能,只能機械地以字為單元進行匹配。對於utf8字元集的資料庫有一個新的漢語分析器chinese_lexer,效率有了很大改善。現將驗證並整理過的如何進行oracle全文索引設定的文檔發給大家,適用於8i、9i各平台版本。

對於DB2,有一個叫做TIE(Text Information Extend)的外掛程式可以實現全文索引,不過據說它的文法分析也很原始。據介紹使用CM(Content Manager)能做到比較好的全文檢索索引,不過需要裝一大堆的軟體,不適於簡單的應用。

一.建立資料庫

1、使用dbassist建立資料庫時要選擇jserver和intermedia兩個選項。

2、檢查你的資料庫是否安裝了intermedia,可以通過檢查是否有ctxsys使用者和ctxapp角色(role).

3、如果沒有這個使用者和角色,意味著資料庫建立時未安裝intermedia功能。必須修改資料庫以安裝這項功能。修改過程:

運行 $ORACLE_HOME/bin/dbassist, 選擇'modify database', 然後在選擇資料庫功能時將jserver 和 intermedia 都選上(安裝intermedia必須同時安裝jserver).

二.設定extproc

Oracle 通過 ‘外部調用功能’(external procedure)來實現intermedia的,因此正確地設定extproc是關鍵一步。 一般資料庫安裝完jserver和intermedia後在listener.ora 和tnsnames.ora中已經設定了extproc。

1、測試extproc是否正常

重新啟動listener,然後,使用tnsping 來測試一下是否配置正確,

命令列下運行

tnsping extproc_connection_data 或者

tnsping extproc_connection_data.world

如果配置正確,會顯示:

Attempting to contact (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)) OK(140毫秒)

如果正確,可以跳過2、3步驟。否則請按照步驟2、3設定listener.ora 和tnsnames.ora檔案,修改後一定要重新啟動listener,但並不需要重新啟動資料庫。

2、設定listerner.ora

如果tnsping失敗,需要配置listener 使它能監聽intermedia 調用的請求。可以通過運行$ORACLE_HOME/bin/netassit 來進行配置,也可以手工修改設定檔:$ORACLE_HOME/network/admin/listener.ora ,然後重新啟動listener。

下面以一個例子來講述如何手工修改設定檔:

開啟listener.ora檔案,在修改前,通常有如下內容(假定使用預設listener): LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MYDATABASE)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = mydatabase.world)
(ORACLE_HOME = /u01/app/oracle/product/8.1.6)
(SID_NAME = mydatabase)
)

這個listener還沒有配置extproc, 因此,需要為它增加對extproc的監聽,辦法就是分別增加description 和 sid_desc. 修改後的listner.ora 如下: LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MYDATABASE)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
) )
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = mydatabase.world)
(ORACLE_HOME = /u01/app/oracle/product/8.1.6)
(SID_NAME = mydatabase) )
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/8.1.6)
) )

注意上面的host, global_dbname,sid_name,oracle_home應填寫你的資料庫的實際值,但program一項必須填寫extproc.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.