F.23. ÐодÑли ÑловаÑей Hunspell
ÐÑи модÑли пÑедоÑÑавлÑÑÑ ÑловаÑи Hunspell Ð´Ð»Ñ ÑазнÑÑ
ÑзÑков. ÐоÑле ÑÑÑановки модÑÐ»Ñ Ð² Ð±Ð°Ð·Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ CREATE EXTENSION в ÑÑ
еме public поÑвлÑÑÑÑÑ Ð¾Ð±ÑекÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии и ÑловаÑÑ ÑекÑÑового поиÑка.
ТаблиÑа F.13. ÐодÑли
| ЯзÑк | Ðазвание ÑаÑÑиÑÐµÐ½Ð¸Ñ | ÐÐ¼Ñ ÑловаÑÑ | ÐÐ¼Ñ ÐºÐ¾Ð½ÑигÑÑаÑии |
|---|---|---|---|
| ÐмеÑиканÑкий английÑкий | hunspell_en_us | english_hunspell | english_hunspell |
| ÐидеÑландÑкий | hunspell_nl_nl | dutch_hunspell | dutch_hunspell |
| ФÑанÑÑзÑкий | hunspell_fr | french_hunspell | french_hunspell |
| Ð ÑÑÑкий | hunspell_ru_ru | russian_hunspell | russian_hunspell |
F.23.1. ÐÑимеÑÑ
ÐбÑекÑÑ ÑекÑÑового поиÑка бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð¿Ð¾Ñле ÑÑÑановки модÑÐ»Ñ ÑловаÑÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÐ¼ пÑовеÑиÑÑ ÑозданнÑÑ ÐºÐ¾Ð½ÑигÑÑаÑиÑ:
SELECT * FROM ts_debug('english_hunspell', 'abilities');
alias | description | token | dictionaries | dictionary | lexemes
-----------+-----------------+-----------+---------------------------------+------------------+-----------
asciiword | Word, all ASCII | abilities | {english_hunspell,english_stem} | english_hunspell | {ability}
(1 row)Ðибо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑоздаÑÑ ÑобÑÑвеннÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ ÑекÑÑового поиÑка. ÐапÑимеÑ, Ñ ÑозданнÑми ÑловаÑÑми и ÑловаÑÑм Snowball Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑÑиÑÑ ÑмеÑаннÑÑ ÑÑÑÑко-английÑкÑÑ ÐºÐ¾Ð½ÑигÑÑаÑиÑ:
CREATE TEXT SEARCH CONFIGURATION russian_en ( COPY = simple ); ALTER TEXT SEARCH CONFIGURATION russian_en ALTER MAPPING FOR asciiword, asciihword, hword_asciipart WITH english_hunspell, english_stem; ALTER TEXT SEARCH CONFIGURATION russian_en ALTER MAPPING FOR word, hword, hword_part WITH russian_hunspell, russian_stem;
СоздаваÑÑ ÑмеÑаннÑе ÑловаÑи можно ÑолÑко Ð´Ð»Ñ ÑзÑков Ñ ÑазлиÑнÑми алÑавиÑами. ÐÑли Ñ Ð´Ð²ÑÑ ÑзÑков Ð¿Ð¾Ñ Ð¾Ð¶Ð¸Ðµ алÑавиÑÑ, Postgres Pro не ÑÐ¼Ð¾Ð¶ÐµÑ Ð¾Ð¿ÑеделиÑÑ, какой ÑловаÑÑ Ð½Ñжно иÑполÑзоваÑÑ.
ÐонÑигÑÑаÑÐ¸Ñ ÑекÑÑового поиÑка, ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð°Ñ Ð¼Ð¾Ð´Ñлем ÑловаÑÑ, непоÑÑедÑÑвенно гоÑова к иÑполÑзованиÑ. ÐапÑимеÑ, Ñак можно иÑкаÑÑ Ð¾Ð¿ÑеделÑннÑе Ñлова в ÑÑом ÑекÑÑе:
SELECT to_tsvector('english_hunspell', 'The blue whale is the largest animal');
to_tsvector
-----------------------------------------
'animal':7 'blue':2 'large':6 'whale':3
(1 row)ÐоиÑковÑй запÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑглÑдеÑÑ Ñак:
SELECT to_tsvector('english_hunspell', 'The blue whale is the largest animal')
@@ to_tsquery('english_hunspell', 'large & whale');
?column?
----------
t
(1 row)С Ñакими конÑигÑÑаÑиÑми можно иÑкаÑÑ ÑекÑÑ, пÑименÑÑ Ð¸Ð½Ð´ÐµÐºÑÑ GIN или GIST. ÐапÑимеÑ, еÑли ÑÑÑеÑÑвÑÐµÑ ÑаблиÑа Ñ Ð¸Ð½Ð´ÐµÐºÑом GIN:
CREATE TABLE table1 (t varchar);
INSERT INTO table1 VALUES ('The blue whale is the largest animal');
CREATE INDEX t_idx ON table1 USING GIN (to_tsvector('english_hunspell', "t"));ÐÐ»Ñ Ð½ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ вÑполниÑÑ ÑледÑÑÑий запÑоÑ:
SELECT * FROM table1 where to_tsvector('english_hunspell', t)
@@ to_tsquery('english_hunspell', 'blue & animal');
t
--------------------------------------
The blue whale is the largest animal
(1 row)