13.2.3 ディクショナリ・ビューを使用したDBMS_SEARCH索引の確認

この例では、様々なディクショナリ・ビューを使用して、索引名、対応するスキーマ所有者名、索引に追加されたデータ・ソース名、対応するソース所有者名とIDなど、DBMS_SEARCH索引に関する情報の問合せ方法を確認できます。

  1. ローカル・ユーザーとしてOracle Databaseに接続します。
    1. SQL*PlusにSYSユーザーとしてログインし、SYSDBAとして接続します。
      conn sys/password as sysdba
      CREATE TABLESPACE tbs1
      DATAFILE 'tbs5.dbf' SIZE 20G AUTOEXTEND ON
      EXTENT MANAGEMENT LOCAL
      SEGMENT SPACE MANAGEMENT AUTO;
      SET ECHO ON
      SET FEEDBACK 1
      SET NUMWIDTH 10
      SET LINESIZE 80
      SET TRIMSPOOL ON
      SET TAB OFF
      SET PAGESIZE 10000
      SET LONG 10000
    2. ローカル・ユーザー(docuser)を作成し、必要な権限を付与します。
      DROP USER docuser cascade;
      GRANT DB_DEVELOPER_ROLE, DEFAULT TABLESPACE tbs1 quota unlimited on tbs1
      TO docuser IDENTIFIED BY password;
    3. ローカル・ユーザー(docuser)として接続します:
      CONN docuser/password
  2. departments表およびemployees表を作成します。
    CREATE TABLE departments
            ( department_id    NUMBER(5) primary key, 
              department_name  VARCHAR2(30), 
              manager_id       NUMBER(6)
            );
    CREATE TABLE employees
            ( employee_id    NUMBER(6) primary key, 
              first_name     varchar2(4000), 
              last_name      varchar2(4000), 
              department_id  NUMBER(4)
            );
  3. 表にデータを入力します。
    
    INSERT INTO departments VALUES(10, 'Administration', 100);
    INSERT INTO employees VALUES  (100, 'Robert', 'Smith', 10);
    INSERT INTO employees VALUES  (101, 'James', 'Martin' ,10);
    INSERT INTO employees VALUES  (102, 'John', 'Doe', 10);
    
    commit;
  4. MY_SEARCH_INDEXという名前のユビキタス検索索引を作成します。
    EXEC DBMS_SEARCH.CREATE_INDEX('DOCUSER.MY_SEARCH_INDEX', NULL, 'JSON');
  5. 表をデータ・ソースとして索引に追加します。
    exec dbms_search.add_source('DOCUSER.MY_SEARCH_INDEX', 'DEPARTMENTS');
    
    exec dbms_search.add_source('DOCUSER.MY_SEARCH_INDEX', 'EMPLOYEES');
  6. ユーザーのスキーマに作成されたDBMS_SEARCH索引に関する情報を表示します。
    select * from user_dbms_search_indexes;
    IDX_NAME
    ---------------------------------------------------
    MY_SEARCH_INDEX
  7. ユーザーのスキーマに作成されたDBMS_SEARCH索引に追加されたデータ・ソースに関する情報を表示します。
    select * from user_dbms_search_index_sources;

    ここで、ソース・タイプTは「表」ソースを意味します:

    IDX_NAME
    ---------------------------------------------------
    SRC_OWNER
    ---------------------------------------------------
    SRC_NAME
    ---------------------------------------------------
    SRC_TYPE   SRC_ID
    ---------  ----------
    MY_SEARCH_INDEX
    DOCUSER
    EMPLOYEES
    T	    2
    
    
    IDX_NAME
    ----------------------------------------------------
    SRC_OWNER
    ----------------------------------------------------
    SRC_NAME
    ----------------------------------------------------
    SRC_TYPE   SRC_ID
    ---------  ----------
    MY_SEARCH_INDEX
    DOCUSER
    DEPARTMENTS
    T	    1
  8. 各索引所有者に対応する、既存のすべてのDBMS_SEARCH索引に関する情報を表示します。
    select * from all_dbms_search_indexes;
    IDX_OWNER
    --------------------------------------------------
    IDX_NAME
    --------------------------------------------------
    DOCUSER
    MY_SEARCH_INDEX
    
    
    CUSTOMER
    CUSTOMER_SEARCH_INDEX
  9. 各索引所有者に対応する、様々なDBMS_SEARCH索引に追加された既存のすべてのデータ・ソースに関する情報を表示します。
    select * from all_dbms_search_index_sources;

    ここで、ソース・タイプTJは、それぞれ「表」ソースと「JSON二面性ビュー」ソースを意味します。

    IDX_OWNER
    --------------------------------------------------------
    IDX_NAME
    --------------------------------------------------------
    SRC_OWNER
    --------------------------------------------------------
    SRC_NAME
    --------------------------------------------------------
    SRC_TYPE   SRC_ID
    ---------  ----------
    DOCUSER
    MY_SEARCH_INDEX
    DOCUSER
    EMPLOYEES
    T          2
    
    
    IDX_OWNER
    ----------------------------------------------------------
    IDX_NAME
    ----------------------------------------------------------
    SRC_OWNER
    ----------------------------------------------------------
    SRC_NAME
    ----------------------------------------------------------
    SRC_TYPE   SRC_ID
    ---------  ----------
    DOCUSER
    MY_SEARCH_INDEX
    DOCUSER
    DEPARTMENTS
    T	   1
    
    
    IDX_OWNER
    -----------------------------------------------------------
    IDX_NAME
    -----------------------------------------------------------
    SRC_OWNER
    -----------------------------------------------------------
    SRC_NAME
    -----------------------------------------------------------
    SRC_TYPE   SRC_ID
    ---------  ----------
    CUSTOMER
    CUSTOMER_SEARCH_INDEX
    CUSTOMER
    MY_EMP_VIEW
    J	   1