星期日, 十一月 26, 2006

XML DB上建立Oracle Text的全文检索(Oracle10g R2)

  • If Oracle XML DB 只有xml文档,没有二进制文档, 那么就可以直接在XDB$RESOURCE table上创建一个context index, 下面是如何创建:

    CREATE INDEX xdb$resource_ctx_i ON XDB.XDB$RESOURCE(OBJECT_VALUE)
    INDEXTYPE IS CTXSYS.CONTEXT;


  • If Oracle XML DB 既有xml文档, 又有二进制文档, 就必须在index进行filter. 使用 package DBMS_XDBT (dbmsxdbt.sql) 来创建和配置Context Index.

    -- Install the package - connected as SYS
    @dbmsxdbt
    -- Create the preferences
    EXEC DBMS_XDBT.createPreferences;
    -- Create the index
    EXEC DBMS_XDBT.createIndex;

    下面是详细的创建过程:

    1.Create Index Script
    -- Install the package - connected as SYS
    @dbmsxdbt

    其实就是run ORACLE_HOME/rdbms/admin/dbmsxdbt.sql

    换成xdb用户进去运行,
    -- Create the preferences
    EXEC xdb.DBMS_XDBT.createPreferences;

    如果要delete: exec xdb.DBMS_XDBT.DROPPREFERENCES;
    -- Create the index
    EXEC xdb.DBMS_XDBT.createIndex;

    如果index已存在,run: DROP INDEX XDB$CI;
    2.Set the Sync
    EXEC xdb.DBMS_XDBT.configureAutoSync;
    3.Search
    SELECT ANY_PATH FROM RESOURCE_VIEW
    WHERE contains(RES, 'Paper') > 0 AND under_path(RES, '/test') > 0;
    4.doc
    Oracle Database PL/SQL Packages and Types Reference, for information on installing and using DBMS_XDBT

  • 没有评论: