Microsoft 社는 2022년 6월 15일 Internet Explorer 11의 지원을 종료했습니다.

pg_bigm 설치(Ubuntu)

제목

pg_bigm 설치

다음 환경에서 테스트를 완료했다.

  • Ubuntu 19.04
  • Ubuntu 20.04.6 LTS

pg_trgm 은 3글자 이상이고, pg_bigm 은 2글자 이상이다.

영어권은 3글자 미만인 단어가 거의 없지만, 한국어는 2글자 단어도 많아서 pg_trgm 은 불편함이 있다.

한국어나 일본어는 소리글자이기는 하지만, 한자의 영향 때문에 짧은 길이의 단어가 많다.

pg_bigm 이나 pg_trgm 는 오직 like 검색을 위한 것이다.

1. Ubuntu 버전 확인

cat /etc/os-release
NAME="Ubuntu"
VERSION="19.04 (Disco Dingo)"

2. 사전준비

sudo apt install gcc
sudo apt install make
sudo apt-get install libpq-dev
sudo apt-get install postgresql-server-dev-all
sudo apt-get install postgresql-common
sudo apt install libicu-dev

3. pg_config 찾기

whereis pg_config

4. 컴파일 및 설치

tar xvfz pg_bigm-1.2-20200228.tar.gz
cd pg_bigm-1.2-20200228
make USE_PGXS=1 PG_CONFIG=/usr/bin/pg_config
sudo make USE_PGXS=1 PG_CONFIG=/usr/bin/pg_config install

make install 실행결과의 마지막 부분은 다음과 같다.

/bin/mkdir -p '/usr/lib/postgresql/11/lib'
/bin/mkdir -p '/usr/share/postgresql/11/extension'
/bin/mkdir -p '/usr/share/postgresql/11/extension'
/usr/bin/install -c -m 755 pg_bigm.so '/usr/lib/postgresql/11/lib/pg_bigm.so'
/usr/bin/install -c -m 644 .//pg_bigm.control '/usr/share/postgresql/11/extension/'
/usr/bin/install -c -m 644 .//pg_bigm--1.2.sql .//pg_bigm--1.1--1.2.sql .//pg_bigm--1.0--1.1.sql '/usr/share/postgresql/11/extension/'
/bin/mkdir -p '/usr/lib/postgresql/11/lib/bitcode/pg_bigm'
/bin/mkdir -p '/usr/lib/postgresql/11/lib/bitcode'/pg_bigm/
/usr/bin/install -c -m 644 bigm_op.bc '/usr/lib/postgresql/11/lib/bitcode'/pg_bigm/./
/usr/bin/install -c -m 644 bigm_gin.bc '/usr/lib/postgresql/11/lib/bitcode'/pg_bigm/./
cd '/usr/lib/postgresql/11/lib/bitcode' && /usr/lib/llvm-7/bin/llvm-lto -thinlto -thinlto-action=thinlink -o pg_bigm.index.bc pg_bigm/bigm_op.bc pg_bigm/bigm_gin.bc

5. PostgreSQL 재기동

sudo service postgresql restart

6. pg_bigm extension 생성 및 확인

postgresql 에 관리자로 접속한다.

sudo -i -u postgres
psql ${데이타베이스이름}

설치한 pg_bigm 확장기능을 추가한다.

CREATE EXTENSION IF NOT EXISTS pg_bigm;

결합인덱스를 위해 btree_gin 확장도 추가한다.

CREATE EXTENSION IF NOT EXISTS btree_gin;
\dx pg_bigm
CREATE INDEX "memo$parent_id$title$contents$insert_date"
ON memo.memo USING gin (
parent_id,
(coalesce(title, '') || ' ' || coalesce(contents, '')) gin_bigm_ops,
insert_date
);
제목

첨부파일