F.49. pg_trgm_mchar
pg_trgm_mchar â ÑаÑÑиÑение Postgres Pro, коÑоÑое обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð±ÑÑÑÑÑй поиÑк ÑÑ
ожиÑ
ÑÑÑок Ñипов mchar и mvarchar на оÑнове ÑÑигамм. ФÑнкÑионалÑноÑÑÑ ÑÑого ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð²Ð¾ многом пеÑеÑекаеÑÑÑ Ñ ÑÑнкÑионалÑноÑÑÑÑ pg_trgm: оно пÑедоÑÑавлÑÐµÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸ÑнÑе ÑÑнкÑии и опеÑаÑоÑÑ, адапÑиÑованнÑе Ð´Ð»Ñ Ñипов mchar и mvarchar. Ðднако Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка по ÑÑолбÑам ÑÑиÑ
Ñипов pg_trgm_mchar поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑолÑко клаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов GIN.
ÐÑимеÑание
ÐпеÑаÑÐ¾Ñ LIKE поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑолÑко опеÑÐ°Ð½Ð´Ñ Ñипов (mchar, mvarchar). ÐпеÑаÑии Ñ Ð¾Ð¿ÐµÑандами Ñипов (mchar, mchar) не поддеÑживаÑÑÑÑ.
F.49.1. УÑÑановка
РаÑÑиÑение pg_trgm_mchar вклÑÑено в ÑоÑÑав Postgres Pro Standard как ÑÑандаÑÑное ÑаÑÑиÑение. Ðно завиÑÐ¸Ñ ÐºÐ°Ðº Ð¾Ñ pg_trgm, Ñак и Ð¾Ñ mchar. ÐÑи модÑли Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑÑановиÑÑ Ð´Ð¾ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ pg_trgm_mchar, либо можно ÑÑÑановиÑÑ Ð²Ñе завиÑимоÑÑи авÑомаÑиÑеÑки Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
CREATE EXTENSION pg_trgm_mchar CASCADE;
Также, еÑли оба ÑÑебÑемÑÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ñже ÑÑÑановленÑ, ÑаÑÑиÑение pg_trgm_mchar можно вклÑÑиÑÑ, вÑполнив ÑледÑÑÑий запÑоÑ:
CREATE EXTENSION pg_trgm_mchar;
ÐоÑколÑÐºÑ ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
mchar и mvarchar иÑполÑзÑÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ ICU, ÐµÑ Ð½Ð°Ð»Ð¸Ñие Ñакже необÑ
одимо Ð´Ð»Ñ ÐºÐ¾ÑÑекÑной ÑабоÑÑ ÑаÑÑиÑениÑ.
F.49.2. ÐÑимеÑ
ÐоÑколÑÐºÑ pg_trgm_mchar ÑÑнкÑиониÑÑÐµÑ Ð¿ÑакÑиÑеÑки иденÑиÑно pg_trgm, за пÑимеÑами иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑаÑиÑеÑÑ Ðº докÑменÑаÑии pg_trgm.
Ðднако пÑоÑеÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов ÑазлиÑаÑÑÑÑ: ÑаÑÑиÑение pg_trgm_mchar иÑполÑзÑÐµÑ ÑемейÑÑво опеÑаÑоÑов gin_trgm_ops_mvarchar/gin_trgm_ops_mchar вмеÑÑо gin_trgm_ops, иÑполÑзÑемого в pg_trgm:
CREATE TABLE test_trgm(t mvarchar); CREATE INDEX trgm_idx ON test_trgm USING gin (t gin_trgm_ops_mvarchar); ... CREATE TABLE test_trgm_mchar(t mchar); CREATE INDEX trgm_mchar_idx ON test_trgm_mchar USING gin (t gin_trgm_ops_mchar);
Ðо вÑÐµÑ Ð¾ÑÑалÑнÑÑ ÑлÑÑаÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ ÑÑÐ¸Ñ Ð´Ð²ÑÑ Ð¼Ð¾Ð´Ñлей иденÑиÑно.