Найти количество документов, проиндексированных в моем индексе oracle.context?

Я знаю, что могу использовать ctx_query.count_hits для подсчета количества документов, соответствующих запросу, и аналогичным образом я могу использовать

count(*) where CONTAINS(...)

Но это только варианты, если у меня есть запрос. Эти функции выдают исключение, если я передаю пустую строку в качестве запроса (спасибо oracle...). Так,

Есть ли способ подсчитать общее количество документов, проиндексированных моим индексом oracle.text?

2 ответа

Решение

Предпочтительным способом является использование пакета CTX_REPORT, либо описать_индексом

set long 50000
select ctx_report.describe_index('MYINDEX') from dual;

даст вам количество проиндексированных документов в docid count колонка:

===========================================================================
                             INDEX DESCRIPTION
===========================================================================
index name:                    "SCHEMA"."MYINDEX"
index id:                      1130
index type:                    context

status:                        INDEXED

full optimize token:
full optimize count:
docid count:                   6909265
nextid:                        6909266

В качестве альтернативы используйте index_stats:

create table output (result CLOB);

  declare
    x clob := null;
  begin
    ctx_report.index_stats('MYINDEX',x);
    insert into output values (x);
    commit;
    dbms_lob.freetemporary(x);
  end;
  /

set long 32000
set head off
set pagesize 10000
select * from output;
===========================================================================
           STATISTICS FOR "SCHEMA"."MYINDEX"
===========================================================================
indexed documents:                                             6,909,265

Также полезно получить размер индекса:

set long 50000
select ctx_report.index_size('MYINDEX') from dual;

Вы можете использовать CTX... просмотров:

select idx_name, idx_table_owner, idx_table, idx_docid_count 
from ctx_user_indexes
Другие вопросы по тегам