오라클의 contains()문과 비슷한 기능을 소개해주세요

by 타이거팀 posted Feb 17, 2009

안녕하세요? 타이거팀입니다.

오라클DB 베이스에 jsp로 기사검색기능을 개발하는중에 LIKE  %검색어%  같은걸 써야하는 곳이 있었는데,  아무래도 LIKE %검색어%  는  검색시 인덱스를 타지못하는 문제점이 발생합니다. 
기사수가 늘어나면 인덱스를 타지못해 속도가 현저히 떨어질것으로 생각되는데다가 필드는 long 타입에 들어있습니다.  Clob타입도 아니라서 LIKE 검색이 먹히지도 않습니다.

제가 여러모로 궁리해서 만든 방법은 현재 오라클에서 제공하는 ORACLE * TEXT 라는 텍스트검색 전문기능을 추가로 설치한후, 이용해서 아래와 같이  Contains()문으로 본문검색 구현을 해놓은 상태입니다.

select * from article1
where art_uid= '0037' and contains (art_news,'검색어') > 0;

오라클 DB를 신규설치하거나, 기설치된 곳에  ctxsys 유저를 활성화시켜서 권한을 부여해주었구요.

SQL> alter user ctxsys account unlock;

news 유저일경우 해당유저에게 ctxapp 권한을 부여했습니다.

SQL> grant ctxapp to news;

article1 테이블아래 art_news가 long 필드로 기사본문이 들어있는 필드라면 인덱스를 하나 생성합니다.

SQL>  drop index idx_artnews force;

SQL>  create index idx_artnews on article1(art_news) indextype is ctxsys.context ;

SQL>  commit;

컨텍스트 타입의 인덱스가 생성되면 이제 jsp 검색 쿼리에 CONTAINS() 명령어를 사용할수 있게됩니다.

여기서 질문 드리겠습니다.

비용문제등으로 큐브리드를 기사 DB로 데이터이전과 마이그레이션을 하고싶습니다.

1.위의 오라클 contains() 문과 비슷한 구현방법이 큐브리드에서 적당한 방법이 있을까요?

2. contains()가 안된다면 오라클 long 타입으로 저장된 기사를 큐브리드의 string 타입으로 변경해서 보내려면 좋은 마이그레이션 방법이 있을지 질문드려봅니다.

3. 오라클끼리는 DB LINK 로 옮기는 방법등이 가능한데, 큐브리드도 DB LINK 같은 기능이 제공되는지도 궁금합니다. _news,'보석') > 0;




오라클의 contains()문과 비슷한 기능을 소개해주세요