問題の核心は、パーサーがpro-physik.de
ホスト名として解析することです:
SELECT alias, token FROM ts_debug('simple', 'pro-physik.de');
alias | token
-------+---------------
host | pro-physik.de
(1 row)
これを比較してください:
SELECT alias, token FROM ts_debug('simple', 'pro-physik-de');
alias | token
-----------------+---------------
asciihword | pro-physik-de
hword_asciipart | pro
blank | -
hword_asciipart | physik
blank | -
hword_asciipart | de
(6 rows)
今pro-physik
とpro-p
はホスト名ではないので、取得します
SELECT to_tsquery('simple', 'pro-physik:*');
to_tsquery
---------------------------------------
'pro-physik':* & 'pro':* & 'physik':*
(1 row)
SELECT to_tsquery('simple', 'pro-p:*');
to_tsquery
-----------------------------
'pro-p':* & 'pro':* & 'p':*
(1 row)
1 つ目は の接頭辞ではないtsquery
ため一致しません。2 つ目は であり、3 つすべてが接頭辞であるため一致します。physik
pro-physik.de
pro-p
pre
p
回避策として、次のように全文検索を使用します。
select
to_tsvector('simple', replace('pro-physik.de', '.', ' ')) @@
to_tsquery('simple', replace('pro-physik:*', '.', ' '))