Skip to content

yoko-murasame/docker-postgres-12-zhparser-postgis

 
 

Repository files navigation

docker-postgres-12-zhparser-postgis

Self-use postgres docker image with following changes

Extensions

  1. postgresql-contrib with pg_stat_statements enable
  2. zhparser full-text search of Chinese
  3. pg-safeupdate require SQL Where Clause in update/delete
  4. pg_cron run cron job
  5. postgis postgis

Cofnig

  1. default_text_search_config set to 'chinese' to use zhparser
  2. pg_stat_statements, safeupdate load by default
  3. max_replication_slots if USE_REPLICATION env is set

more in this file

Build

# amd64
docker build -t postgres-12-zhparser-postgis:latest -f ./Dockerfile .
docker save -o postgres-12-zhparser-postgis postgres-13-zhparser-postgis:latest
docker load -i postgres-12-zhparser-postgis
# arm64
docker build -t postgres-12-zhparser-postgis-arm:latest -f ./DockerfileArm64 .
docker save -o postgres-12-zhparser-postgis-arm postgres-13-zhparser-postgis-arm:latest
docker load -i postgres-12-zhparser-postgis-arm

Run

docker run --name postgres-12 -e POSTGRES_PASSWORD=<PASSWORD> -p <PORT>:5432 -d postgres-13-zhparser-postgis:latest

Using

psql -d <database>

SELECT to_tsvector('chinese', '人生苦短,乘早摸鱼,Good Morning~');
                      to_tsvector
--------------------------------------------------------
'good':8 'morning':9 '':4 '人生':1 '':6 '':5 '':3 '':2 '':7

-- add custom dict
insert into zhprs_custom_word values ('摸鱼');
insert into zhprs_custom_word values ('荒天帝');
insert into zhprs_custom_word values ('独断万古');
insert into zhprs_custom_word values ('人生苦短');
-- make effect
select sync_zhprs_custom_word();

-- test
SELECT * FROM ts_parse('zhparser', '人生苦短,爆炸吧,小宇宙,独断万古荒天帝,摸鱼ing,Good Morning~');
SELECT to_tsquery('chinese', '荒天帝石昊');
SELECT to_tsvector('chinese', '人生苦短,爆炸吧,小宇宙,独断万古荒天帝,摸鱼ing,Good Morning~');

Backup Data

docker exec -it postgres-12 pg_dump -Upostgres > backup.sql

About

docker-postgres-12-zhparser-postgis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dockerfile 71.4%
  • Shell 28.6%