Ubuntu Postgresql에 한글 full text search 적용하기

Karoid·2020년 2월 17일
0

Database

목록 보기
1/6

한글 검색 최적화를 위해 모든 윈도우 환경의 postgresql을 강제로 WOL에 다시 설치해야 했다..
이후 ubuntu 18버전에 textsearch_ko를 설치한다.

Mecab Ko 설치

$ sudo apt-get install build-essential
$ git clone https://bitbucket.org/eunjeon/mecab-ko.git
$ cd mecab-ko
$ ./configure
$ make all && sudo make install

Mecab Ko Dict 설치

우분투에서 몇가지 경로가 깨지는 에러가 있어서 다음 조치를 취해야 한다.

$ wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.1.1-20180720.tar.gz
$ tar xzf mecab-ko-dic-2.1.1-20180720.tar.gz
$ cd mecab-ko-dic-2.1.1-20180720
$ sudo ldconfig
$ ldconfig -p | grep /usr/local/lib
$autoreconf
$ ./configure
$ make all && sudo make install

제대로 설치가 되었는지 확인

$ echo '안녕 신기한 세상아'|mecab
안녕    IC,*,T,안녕,*,*,*,*
신기    XR,*,F,신기,*,*,*,*
한      XSA+ETM,*,T,한,Inflect,XSA,ETM,하/XSA/*+ᆫ/ETM/*
세상아  NNP,*,F,세상아,*,*,*,*
EOS

Postgresql Extention 설치

$ git clone https://github.com/i0seph/textsearch_ko.git
$ cd textsearch_ko
$ make USE_PGXS=1

// postgresql 에러날 경우
$ sudo apt install postgresql-server-dev-<현재 Postgresql 버전>

$ sudo make USE_PGXS=1 install

Postgresql 함수 생성

$ psql -U postgres -f ts_mecab_ko.sql <데이터베이스 >

확인

select * from mecabko_analyze('안녕하세요아저씨감사합니다');

추가 세팅 사항

만약 trigram을 동시에 이용해 검색한다면 다음 명령어로 extension을 활성화하자

CREATE EXTENSION pg_trgm;

만약 SQL이 제대로 실행되지 않으면 다음 패키지를 추가로 받아야 한다

sudo apt install postgresql-contrib
profile
Backend. Rails, MongoDB 강좌를 운영하고 있습니다

0개의 댓글