2017-06-12 5 views
1

に#で始まる単語の語幹基本的に、私はこのようなクエリのために(ハッシュタグが含まれています)正確な一致を得ることができるようにしたい:防止はPostgreSQLの全文検索

=#SELECT to_tsvector('english', '#adoption'); 
to_tsvector 
------------- 
'adopt':1 

代わりに、私は始まる単語のためにしたいです#と表示すると、

=#SELECT to_tsvector('english', '#adoption'); 
to_tsvector 
------------- 
'#adoption':1 

これはpsqlのフルテキスト検索で可能ですか?

答えて

1

あなたが検索またはインデックスの前に、あなたはあなたの文章で使用していないいくつかの他の文字との各#文字を置き換えますが、パーサの解釈を変更することができます:

test=> SELECT alias, lexemes FROM ts_debug('english', '#adoption'); 
┌───────────┬─────────┐ 
│ alias │ lexemes │ 
├───────────┼─────────┤ 
│ blank  │   │ 
│ asciiword │ {adopt} │ 
└───────────┴─────────┘ 
(2 rows) 

test=> SELECT alias, lexemes FROM ts_debug('english', '/adoption'); 
┌───────┬─────────────┐ 
│ alias │ lexemes │ 
├───────┼─────────────┤ 
│ file │ {/adoption} │ 
└───────┴─────────────┘ 
(1 row) 
+0

天才 - ありがとう!私はPSQLがハッシュタグを認識するためにパーサを拡張するだけでいいと思っています。彼らは全面的に使用されています... – Mark

関連する問題