F.65. shared_ispell â ÑазделÑемÑй ÑловаÑÑ ispell #
ÐодÑÐ»Ñ shared_ispell пÑедоÑÑавлÑÐµÑ ÑазделÑемÑй ÑловаÑÑ ispell, Ñо еÑÑÑ ÑловаÑÑ, ÑаÑположеннÑй в обÑем ÑегменÑе памÑÑи. Ð ÑÑадиÑионной ÑеализаÑии ispell каждÑй ÑÐµÐ°Ð½Ñ Ð¸Ð½Ð¸ÑиализиÑÑÐµÑ Ð¸ загÑÑÐ¶Ð°ÐµÑ ÑобÑÑвеннÑй ÑкземплÑÑ ÑловаÑÑ, и на ÑÑо ÑÑ
Ð¾Ð´Ð¸Ñ Ð¼Ð½Ð¾Ð³Ð¾ ÑеÑÑÑÑов пÑоÑеÑÑоÑа и памÑÑи.
ÐÑо ÑаÑÑиÑение вÑделÑÐµÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð°Ð¼ÑÑи в ÑазделÑемом ÑегменÑе (Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑбÑаÑÑ ÐµÐ³Ð¾ ÑÐ°Ð·Ð¼ÐµÑ Ð·Ð°Ñанее) и загÑÑÐ¶Ð°ÐµÑ Ð² Ð½ÐµÑ ÑловаÑÑ Ð¿Ñи пеÑвом иÑполÑзовании.
F.65.1. ФÑнкÑии #
РеализованнÑе в модÑле shared_ispell ÑÑнкÑии пеÑеÑиÑÐ»ÐµÐ½Ñ Ð² ТаблиÑе F.41.
ТаблиÑа F.41. ФÑнкÑии shared_ispell
F.65.2. ÐаÑамеÑÑÑ GUC #
shared_ispell.max_size(int) #ÐпÑеделÑÐµÑ Ð¼Ð°ÐºÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ ÑазделÑемого ÑегменÑа. ÐÑо жÑÑÑкий пÑедел; ÑазделÑемÑй ÑÐµÐ³Ð¼ÐµÐ½Ñ Ð½ÐµÐ»ÑÐ·Ñ ÑаÑÑиÑиÑÑ, поÑÑÐ¾Ð¼Ñ Ð½Ñжно ÑÑÑановиÑÑ Ñакой ÑазмеÑ, ÑÑÐ¾Ð±Ñ Ð² ÑÑом ÑегменÑе ÑмеÑÑилиÑÑ Ð²Ñе ÑловаÑи и пÑи ÑÑом он не занимал лиÑний обÑÑм.
F.65.3. ÐÑполÑзование ÑловаÑÑ #
ÐÑÐ¾Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ вÑделиÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð°Ð¼ÑÑи в ÑазделÑемом ÑегменÑе. ÐоÑÑÐ¾Ð¼Ñ Ð´Ð¾Ð±Ð°Ð²ÑÑе в Ñайл конÑигÑÑаÑии ÑледÑÑÑие паÑамеÑÑÑ (или оÑÑедакÑиÑÑйÑе ÑекÑÑие знаÑениÑ):
# загÑÑжаемÑе библиоÑеки shared_preload_libraries = 'shared_ispell' # обÑÑм ÑазделÑемой памÑÑи shared_ispell.max_size = 32MB
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð½ÑÑÑ, ÑколÑко памÑÑи вам дейÑÑвиÑелÑно нÑжно, задайÑе ÑнаÑала болÑÑое знаÑение (напÑимеÑ, 200 ÐÐ) и загÑÑзиÑе вÑе нÑжнÑе вам ÑловаÑи. ÐаÑем воÑполÑзÑйÑеÑÑ ÑÑнкÑией shared_ispell_mem_used() и опÑеделиÑе, ÑколÑко памÑÑи на Ñамом деле иÑполÑзÑеÑÑÑ (и ÑкоÑÑекÑиÑÑйÑе ÑооÑвеÑÑÑвÑÑÑÑÑ Ð¿ÐµÑеменнÑÑ GUC shared_ispell.max_size).
Ðе задавайÑе в ÑоÑноÑÑи полÑÑенное знаÑение, оÑÑавÑÑе неболÑÑой ÑезеÑв, ÑÑÐ¾Ð±Ñ Ð²Ñ Ð¼Ð¾Ð³Ð»Ð¸ пеÑезагÑÑжаÑÑ ÑловаÑи, не изменÑÑ Ð¿Ñедел GUC max_size (ÑÑо поÑÑебÑÐµÑ Ð¿ÐµÑезапÑÑка ÐÐ). ÐбÑÑма в Ñайоне 512 ÐРбÑÐ´ÐµÑ Ð²Ð¿Ð¾Ð»Ð½Ðµ доÑÑаÑоÑно.
ÐÑо ÑаÑÑиÑение опÑеделÑÐµÑ Ñаблон shared_ispell, иÑполÑзÑÑ ÐºÐ¾ÑоÑÑй можно опÑеделÑÑÑ ÑобÑÑвеннÑе ÑловаÑи ÑекÑÑового поиÑка. ÐапÑимеÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑделаÑÑ ÑледÑÑÑее:
CREATE TEXT SEARCH DICTIONARY english_shared (
TEMPLATE = shared_ispell,
DictFile = en_us,
AffFile = en_us,
StopWords = english
);
CREATE TEXT SEARCH CONFIGURATION public.english_shared
( COPY = pg_catalog.simple );
ALTER TEXT SEARCH CONFIGURATION english_shared
ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
word, hword, hword_part
WITH english_shared, english_stem;ÐÑовеÑиÑÑ Ð¿Ð¾Ð»ÑÑеннÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ Ñак:
SELECT * FROM ts_debug('english_shared', 'abilities');
alias | description | token | dictionaries | dictionary | lexemes
-----------+-----------------+-----------+-------------------------------+----------------+-----------
asciiword | Word, all ASCII | abilities | {english_shared,english_stem} | english_shared | {ability}
(1 row)ÐÑ Ñакже можеÑе измениÑÑ ÑÑÑеÑÑвÑÑÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ ÑекÑÑового поиÑка. ÐапÑимеÑ, еÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ public.english, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе подклÑÑиÑÑ Ðº ней Ñаблон shared_ispell:
ALTER TEXT SEARCH CONFIGURATION public.english
ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
word, hword, hword_part
WITH english_shared, english_stem;F.65.4. ÐвÑÐ¾Ñ #
Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа <[email protected]>, ÐÑага, ЧеÑÑÐºÐ°Ñ ÑеÑпÑблика