2013-03-25 4 views
2

는 내가 쿼리, 일치하는 문서의 수를 계산 ctx_query.count_hits을 사용할 수 있습니다 알고 유사하게, 나는oracle.context 색인에서 색인 된 문서 수 찾기?

count(*) where CONTAINS(...) 

을 사용할 수 있습니다하지만 실제로 쿼리가 발생하는 경우, 다음은 옵션입니다. 빈 문자열을 질의로 전달하면 그 함수는 예외를 던진다 (oracle ...). 따라서

oracle.text 인덱스로 인덱싱 된 문서의 총 수를 계산하는 방법이 있습니까?

답변

1

선호되는 방법은 CTX_REPORT Package을 사용하는 것입니다, 하나

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

당신 인덱싱 된 문서의 수를 줄 것이다 describe_index 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 :

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

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 
또한

유용한 인덱스의 크기를 얻을 수

0

당신은 CTX를 사용할 수 있습니다 ... 조회수 :

select idx_name, idx_table_owner, idx_table, idx_docid_count 
from ctx_user_indexes