Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-18
제목 ORACLE CONTEXT CARTRIDGE를 활용한 HTML 문서 검색시스템
ORACLE CONTEXT CARTRIDGE를 활용한 HTML 문서 검색시스템
=====================================================

Explanation
-----------
Oracle Context Cartridge를 활용하여, 인터넷/인트라넷상에 존재하는 html
문서에 대한
indexing을 할 수 있다. 여러가지 접근 방법이 있을수 있겠지만, 여기서는 proxy
서버의
사용유무 여부에 따라 policy 생성 방법을 나누어 기술하기로 한다.

1. Table 생성
create table url_docs (
seq number,
url varchar2(256)
);
alter table url_docs add constraint url_docs_pk primary key (seq);

insert into url_docs values (1, 'http://www.oracle.co.kr');
insert into url_docs values (2,
'http://technet.oracle.co.kr/product/owas/html/refer_ko.html');
insert into url_docs values (3,
'http://www.oracle.co.kr/product/dataservers/index.html');
insert into url_docs values (4,
'http://www.oracle.co.kr/RcNote/rcnote106/rcnote106.htm');

commit;

2. Policy 생성

Case 1. proxy 서버 및 section 검색 기능을 사용하지 않는 경우.
(1) Policy 생성
begin
ctx_ddl.create_policy(policy_name => 'url_docs_pol',
colspec => 'url_docs.url',
description => 'My URL Policy',
textkey => 'url_docs.seq',
dstore_pref => 'DEFAULT_URL',
filter_pref => 'CTXSYS.HTML_FILTER',
lexer_pref => 'CTXSYS.KOREAN'
);
end;
/

Case 2. proxy 서버를 사용하는 경우.
(1) Data Store Preference 생성
begin
ctx_ddl.set_attribute('http_proxy', '206.223.27.62');
/* 자신이 속한 기관의 http proxy 서버의 ip 나 hostname */
ctx_ddl.set_attribute('ftp_proxy', '206.223.27.62');
/* 자신이 속한 기관의 ftp proxy 서버의 ip 나 hostname */
ctx_ddl.set_attribute('no_proxy', 'kr.oracle.com,us.oracle.com');

/* http, ftp proxy 서버를 거치지 않고 바로 접속하는 도메인 */

ctx_ddl.create_preference('My_URL_PREF', 'My URL data store
preference', 'URL');
end;
/

(2) Polciy 생성
begin
ctx_ddl.create_policy(policy_name => 'url_docs_pol',
colspec => 'url_docs.url',
description => 'My URL Policy',
textkey => 'url_docs.seq',
dstore_pref => 'My_URL_PREF',
filter_pref => 'CTXSYS.HTML_FILTER',
lexer_pref => 'CTXSYS.KOREAN'
);
end;
/

3. Index 생성
execute ctx_ddl.create_index('url_docs_pol');

4. 검색 테스트

select * from url_docs where contains (url, '청와대') > 0;
...
select * from url_docs where contains (url, 'oracle') > 0;
...
Comment
등록된 코멘트가 없습니다.