database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 2759 게시물 읽기
No. 2759
한글 fulltext index에대한 설계.
작성자
김상기
작성일
2001-05-17 14:06
조회수
3,349

구현 목표:

create table t (s text);

 

이 테이블에서

select * from t where s like '%bcdef%'

와 같은 쿼리를 사용함에 있어 특정 index를 사용할 수 있게 한다.

 

(이 목표는 7.2 버전의 todo라고 하네요)

 

 

차선책:

이것을 구현하기위해서 db의 저수순 index 처리에 대한 새 방법이 나와야하는지라,

새 버전이 나오기 전까지는 사용을 할 수 없기에,

차선책으로 다음 방법을 사용해 볼까 합니다.

 

t 테이블에 대한 full text index 테이블(t_fti)을 따로 하나 만들고,

검색을 할 때는 t 테이블과 t_fti 테이블을 join을 한다.

 

create table t_fti (s text, id oid);

 

select b.* from t_fti a, t b where b.s = '가나다' and b.id = a.oid;

 

이러한 쿼리라면, full text index를 구현해 낼 수 있을 것같습니다.

이때, t_fti 의 s 필드는 다음과 같이 입력되면 되겠지요.

 

가령, t.s 가 '안녕하세요' 이면,

t_fti 의 테이블 내용은

s : id

///////////

안 : 1000

안녕 : 1000

안녕하 : 1000

안녕하세 : 1000

안녕하세요 : 1000

 

 

개발방법:

1. contrib 디렉토리에 있는 fulltextindex 모듈을 해킹한다.

(현재 이 모듈을 영어만 처리가 가능합니다)

이 경우는 한글만 되게 해킹을 한다는 것은 시간 낭비일 것같고,

그렇다고, PostgreSQL에서 지원하는 다국어를 모두 고려해서 생각한다면,

개발 기간이 너무 걸릴것같습니다.(제 실력으로는)

 

2. 간단히(?) trigger를 만들어서 PostgreSQL의 자체 스트링 함수들을

이용하는 방법입니다. 이 방법을 사용하면, 다국어 문자열 처리에 대한

고민을 하지 않아도 되겠지요. 서버에서 그 처리를 해줄 터이니.

[Top]
No.
제목
작성자
작성일
조회
2764Postgrsql ODBC Driver를 어디에서 구할 수 있을까요?
2001-05-18
2417
2766┕>Re: Postgrsql ODBC Driver를 어디에서 구할 수 있을까요?
정재익
2001-05-18 23:43:21
2646
2767 ┕>Re: Re: Postgrsql ODBC Driver를 어디에서 구할 수 있을까요?
이태웅
2001-05-19 09:43:21
2515
2763apache+php+pgsql+mysql+gd 설치시 에러에 대하여..(급함)
초보자
2001-05-18
2726
2768┕>Re: apache+php+pgsql+mysql+gd 설치시 에러에 대하여..(급함)
정재익
2001-05-19 21:07:27
2863
2761궁금한게 있는데요.
이태웅
2001-05-18
2562
2765┕>Re: 궁금한게 있는데요.
정재익
2001-05-18 23:32:56
2668
2758before trigger를 호출한 테이블의 insert oid 구하는 방법은?
김상기
2001-05-17
2818
2759┕>한글 fulltext index에대한 설계.
김상기
2001-05-17 14:06:56
3349
2754사용자의 테이블을 억지로 카피하는방법
김황수
2001-05-16
2681
2755┕>Re: 저수준 DB 복구에 대한 참고
김상기
2001-05-16 15:50:01
3060
2756 ┕>테이블 강제로 지우는 방법..?
김황수
2001-05-17 10:36:43
2933
2757  ┕>Re: vacuum 명령을 이용해 보시지요.
김상기
2001-05-17 13:44:41
3009
2762   ┕>Re: Re: vacuum 명령을 이용해 보시지요.
김황수
2001-05-18 12:33:14
3049
2750CPU를 dual로 했을때 속도향상이 실제로 얼마나?
가우
2001-05-15
2760
2749비슷한 문자열을 찾는 쿼리.. --;
이태웅
2001-05-15
2713
2753┕>Re: 비슷한 문자열을 찾는 쿼리.. --;
정재익
2001-05-15 18:18:17
3092
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다