8c7f6c03

и LOBINDEX для хранения данных


  • индекс DR$DOCS_VC2DOC_IDX$X (обычный, типа NORMAL),
  • сегменты типа LOBSEGMENT и LOBINDEX для хранения данных поля TOKEN_INFO типа BLOB.


  • Таблица DR$DOCS_VC2DOC_IDX$K.
    Хранит соответствие DOCID адресу ROWID строки с текстом или ссылкой на текст. Индексно-организованная таблица, хранится в структуре индекса.
  • Таблица DR$DOCS_VC2DOC_IDX$R.
    Хранит список для обратного поиска: ROWID по DOCID. Вторичные, связанные с ней объекты:


    • сегменты типа LOBSEGMENT и LOBINDEX для хранения данных поля DATA типа BLOB.


    • Таблица DR$DOCS_VC2DOC_IDX$N.
      Хранит список удаленных документов (DOCID) пополняющийся при оптимизации текстового индекса. Индексно-организованная таблица, хранится в структуре индекса.


    • Пример выдачи из таблицы DR$DOCS_VC2DOC_IDX$I:

      CTX> SELECT token_text, token_count FROM dr$docs_vc2doc_idx$i;

      TOKEN_TEXT TOKEN_COUNT ------------------------------------------------- ----------- LAMB 2 LITTLE 2 MARY 1 STAR 1 TWINKLE 1

      Еще одно отличие текстового индекса от обычного в том, что он не правится автоматически при правке документа. Например:

      CTX> UPDATE docs SET vc2doc = 'This Land is my land' WHERE doc_id = 3;

      1 row updated.

      CTX> COMMIT;

      Commit complete.

      CTX> SELECT token_text, token_count FROM dr$docs_vc2doc_idx$i;

      TOKEN_TEXT TOKEN_COUNT ------------------------------------------------- ----------- LAMB 2 LITTLE 2 MARY 1 STAR 1 TWINKLE 1

      В силу громоздкости текстового индекса сведения о необходимых исправлениях собираются в отдельной таблице, а сама правка выполняется по мере надобности вручную:

      CTX> SELECT pnd_name, pnd_rowid FROM ctx_user_pending;

      PND_NAME PND_ROWID ---------------------------- ------------------ DOCS_VC2DOC_IDX AAAMm2AAEAAAABAAAC

      CTX> EXECUTE CTX_DDL.SYNC_INDEX ( 'docs_vc2doc_idx' )

      PL/SQL procedure successfully completed.

      CTX> /

      no rows selected

      CTX> SELECT token_text, token_count FROM dr$docs_vc2doc_idx$i;

      TOKEN_TEXT TOKEN_COUNT ------------------------------------------------- ----------- LAMB 2 LAND 1

      LITTLE 2 MARY 1 STAR 1 TWINKLE 1

      (Синхронизировать индекс можно и командой ALTER INDEX, но сейчас фирма Oracle этого не советует).

      Стандартный прием - создать задание для плановой корректировки текстового индекса по расписанию.


      Содержание  Назад  Вперед





      Forekc.ru
      Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий