12.5. ÐнализаÑоÑÑ #
ÐадаÑа анализаÑоÑов ÑекÑÑа â ÑазделиÑÑ ÑекÑÑ Ð´Ð¾ÐºÑменÑа на ÑÑагменÑÑ Ð¸ пÑиÑвоиÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð¸Ð· Ð½Ð¸Ñ Ñип из набоÑа, опÑеделÑнного в Ñамом анализаÑоÑе. ÐамеÑÑÑе, ÑÑо анализаÑоÑÑ Ð½Ðµ менÑÑÑ ÑекÑÑ â они пÑоÑÑо вÑдаÑÑ Ð¿Ð¾Ð·Ð¸Ñии пÑедполагаемÑÑ Ñлов. ÐÑледÑÑвие Ñакой огÑаниÑенноÑÑи Ð¸Ñ ÑÑнкÑий, ÑобÑÑвеннÑе ÑпеÑиÑиÑеÑкие анализаÑоÑÑ Ð±ÑваÑÑ Ð½ÑÐ¶Ð½Ñ Ð³Ð¾Ñаздо Ñеже, Ñем ÑобÑÑвеннÑе ÑловаÑи. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð² Postgres Pro еÑÑÑ ÑолÑко один вÑÑÑоеннÑй анализаÑоÑ, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ Ð´Ð»Ñ ÑиÑокого кÑÑга пÑиложений.
ÐÑÐ¾Ñ Ð²ÑÑÑоеннÑй анализаÑÐ¾Ñ Ð½Ð°Ð·ÑваеÑÑÑ pg_catalog.default. Ðн ÑаÑпознаÑÑ 23 Ñипа ÑÑагменÑов, пеÑеÑиÑленнÑе в ТаблиÑе 12.1.
ТаблиÑа 12.1. Ð¢Ð¸Ð¿Ñ ÑÑагменÑов, вÑделÑемÑÑ ÑÑандаÑÑнÑм анализаÑоÑом
| ÐÑевдоним | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ |
|---|---|---|
asciiword | Слово ÑолÑко из бÑкв ASCII | elephant |
word | Слово из лÑбÑÑ Ð±Ñкв | mañana |
numword | Слово из бÑкв и ÑиÑÑ | beta1 |
asciihword | Слово ÑолÑко из бÑкв ASCII Ñ Ð´ÐµÑиÑами | up-to-date |
hword | Слово из лÑбÑÑ Ð±Ñкв Ñ Ð´ÐµÑиÑами | lógico-matemática |
numhword | Слово из бÑкв и ÑиÑÑ Ñ Ð´ÐµÑиÑами | postgresql-beta1 |
hword_asciipart | ЧаÑÑÑ Ñлова Ñ Ð´ÐµÑиÑами, ÑолÑко из бÑкв ASCII | postgresql в ÑловоÑоÑеÑании postgresql-beta1 |
hword_part | ЧаÑÑÑ Ñлова Ñ Ð´ÐµÑиÑами, из лÑбÑÑ Ð±Ñкв | lógico или matemática в ÑловоÑоÑеÑании lógico-matemática |
hword_numpart | ЧаÑÑÑ Ñлова Ñ Ð´ÐµÑиÑами, из бÑкв и ÑиÑÑ | beta1 в ÑловоÑоÑеÑании postgresql-beta1 |
email | ÐдÑÐµÑ ÑлекÑÑонной поÑÑÑ | foo@example.com |
protocol | ÐÑеÑÐ¸ÐºÑ Ð¿ÑоÑокола | http:// |
url | URL | example.com/stuff/âindex.html |
host | ÐÐ¼Ñ Ñзла | example.com |
url_path | ÐÑÑÑ Ð² адÑеÑе URL | /stuff/index.html, как ÑаÑÑÑ URL |
file | ÐÑÑÑ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ñайла | /usr/local/foo.txt, еÑли не ÑвлÑеÑÑÑ ÑаÑÑÑÑ URL |
sfloat | ÐаÑÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ ÑиÑла | -1.234e56 |
float | ÐеÑÑÑиÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ ÑиÑла | -1.234 |
int | Целое Ñо знаком | -1234 |
uint | Целое без знака | 1234 |
version | ÐÐ¾Ð¼ÐµÑ Ð²ÐµÑÑии | 8.3.0 |
tag | Тег XML | <a href=â"dictionaries.html"> |
entity | СÑÑноÑÑÑ XML | & |
blank | СимволÑ-ÑазделиÑели | (лÑбÑе пÑобелÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¸Ð»Ð¸ знаки пÑепинаниÑ, не попавÑие в дÑÑгие каÑегоÑии) |
ÐÑимеÑание
ÐонÑÑие «бÑквÑ» анализаÑÐ¾Ñ Ð¾Ð¿ÑеделÑÐµÑ Ð¸ÑÑ
Ð¾Ð´Ñ Ð¸Ð· локали, заданной Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, в ÑаÑÑноÑÑи паÑамеÑÑа lc_ctype. Слова, ÑодеÑжаÑие ÑолÑко бÑÐºÐ²Ñ Ð¸Ð· ASCII (лаÑинÑкие бÑквÑ), ÑаÑпознаÑÑÑÑ ÐºÐ°Ðº ÑÑагменÑÑ Ð¾ÑделÑного Ñипа, Ñак как иногда бÑÐ²Ð°ÐµÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ вÑделиÑÑ Ð¸Ñ
. ÐÐ»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ
евÑопейÑкиÑ
ÑзÑков ÑÐ¸Ð¿Ñ ÑÑагменÑов word и asciiword можно воÑпÑинимаÑÑ ÐºÐ°Ðº ÑинонимÑ.
email пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ðµ вÑе ÑимволÑ, коÑоÑÑе ÑÑиÑаÑÑÑÑ Ð´Ð¾Ð¿ÑÑÑимÑми по ÑÑандаÑÑÑ RFC 5322. Ð ÑаÑÑноÑÑи, Ð¸Ð¼Ñ Ð¿Ð¾ÑÑового ÑÑика помимо алÑавиÑно-ÑиÑÑовÑÑ
Ñимволов Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÑолÑко ÑоÑкÑ, минÑÑ Ð¸ подÑÑÑкивание.
tag поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð½Ðµ вÑе дейÑÑвиÑелÑнÑе имена Ñегов, опÑеделÑннÑе в РекомендаÑии W3C по XML. Рименно поддеÑживаÑÑÑÑ ÑолÑко имена Ñегов, коÑоÑÑе наÑинаÑÑÑÑ Ñ Ð±ÑÐºÐ²Ñ Ð¸Ð· ASCII, знака подÑÑÑÐºÐ¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ двоеÑоÑÐ¸Ñ Ð¸ ÑодеÑÐ¶Ð°Ñ ÑолÑко бÑквÑ, ÑиÑÑÑ, деÑиÑÑ, знаки подÑÑÑÐºÐ¸Ð²Ð°Ð½Ð¸Ñ Ð¸ двоеÑоÑиÑ. tag Ñакже вклÑÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии XML, наÑинаÑÑиеÑÑ Ñ <!-- и заканÑиваÑÑиеÑÑ -->, и обÑÑÐ²Ð»ÐµÐ½Ð¸Ñ XML (однако обÑаÑиÑе внимание, ÑÑо ÑÑда вÑ
Ð¾Ð´Ð¸Ñ Ð²ÑÑ, ÑÑо наÑинаеÑÑÑ Ñ <?x и заканÑиваеÑÑÑ >).
ÐнализаÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑделиÑÑ Ð² одном ÑекÑÑе неÑколÑко пеÑекÑÑваÑÑÐ¸Ñ ÑÑ ÑÑагменÑов. ÐапÑимеÑ, Ñлово Ñ Ð´ÐµÑиÑом бÑÐ´ÐµÑ Ð²Ñдано как Ñелое ÑоÑÑавное Ñлово и по ÑаÑÑÑм:
SELECT alias, description, token FROM ts_debug('foo-bar-beta1');
alias | description | token
-----------------+------------------------------------------+--------------
numhword | Hyphenated word, letters and digits | foo-bar-beta1
hword_asciipart | Hyphenated word part, all ASCII | foo
blank | Space symbols | -
hword_asciipart | Hyphenated word part, all ASCII | bar
blank | Space symbols | -
hword_numpart | Hyphenated word part, letters and digits | beta1
ÐÑо поведение ÑÑиÑаеÑÑÑ Ð¶ÐµÐ»Ð°ÑелÑнÑм, Ñак как ÑÑо позволÑÐµÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑ Ð¿Ñи поÑледÑÑÑем поиÑке и вÑÑ Ñлово Ñеликом, и его ÑаÑÑи. ÐÑÑ Ð¾Ð´Ð¸Ð½ показаÑелÑнÑй пÑимеÑ:
SELECT alias, description, token FROM ts_debug('http://example.com/stuff/index.html');
alias | description | token
----------+---------------+------------------------------
protocol | Protocol head | http://
url | URL | example.com/stuff/index.html
host | Host | example.com
url_path | URL path | /stuff/index.html