找到我的oracle.context索引中索引的文档数量?

时间:2013-03-25 17:27:06

标签: oracle oracle10g oracle-text

我知道我可以使用ctx_query.count_hits来计算与查询匹配的文档数量, 同样,我可以使用

count(*) where CONTAINS(...)

但如果我确实有查询,这些只是选项。如果我将空字符串作为查询传递(感谢oracle ...),那些函数会抛出异常。所以,

  

有没有办法计算我的索引文件总数   oracle.text index?

2 个答案:

答案 0 :(得分:2)

首选方法是使用CTX_REPORT Package describe_index

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;

答案 1 :(得分:0)

您可以使用CTX ...视图:

select idx_name, idx_table_owner, idx_table, idx_docid_count 
from ctx_user_indexes