Первым шагом в обработке полнотекстового поиска является парсер , который разбивает строку на токены и использует эвристику для присвоения им типа.Дальнейшая обработка зависит от типа.
Функция ts_debug
полезна для анализа происходящего:
SELECT alias, description, lexemes
FROM ts_debug('xyz/xyz-abc-testbed');
alias | description | lexemes
-------+-------------------+-----------------------
file | File or path name | {xyz/xyz-abc-testbed}
(1 row)
SELECT alias, description, lexemes
FROM ts_debug('xyz-abc-testbed');
alias | description | lexemes
-----------------+---------------------------------+-------------------
asciihword | Hyphenated word, all ASCII | {xyz-abc-testbed}
hword_asciipart | Hyphenated word part, all ASCII | {xyz}
blank | Space symbols |
hword_asciipart | Hyphenated word part, all ASCII | {abc}
blank | Space symbols |
hword_asciipart | Hyphenated word part, all ASCII | {testbed}
(6 rows)
PostgreSQL интерпретирует строку с /
в качестве пути к файлу.Он не будет разбивать путь к файлу на части, как это происходит с переносом слов.