Hao*_*Hao 5 postgresql full-text-search
是否有一个魔术函数或运算符来忽略某些标记?
select to_tsvector('the quick. brown fox') @@ 'brown' -- returns true
select to_tsvector('the quick,brown fox') @@ 'brown' -- returns true
select to_tsvector('the quick.brown fox') @@ 'brown' -- returns false, should return true
select to_tsvector('the quick/brown fox') @@ 'brown' -- returns false, should return true
Run Code Online (Sandbox Code Playgroud)
恐怕你被卡住了。如果您通过 ts_debug 运行您的条款,您将看到 'quick.brown' 被解析为主机名,而 'quick/brown' 被解析为文件系统路径。可悲的是,解析器真的没有那么聪明。
我唯一的建议是您预处理文本以将这些标记转换为空格。您可以轻松地在 plpgsql 中创建一个函数来做到这一点。
nicg=# select ts_debug('the quick.brown fox');
ts_debug
---------------------------------------------------------------------
(asciiword,"Word, all ASCII",the,{english_stem},english_stem,{})
(blank,"Space symbols"," ",{},,)
(host,Host,quick.brown,{simple},simple,{quick.brown})
(blank,"Space symbols"," ",{},,)
(asciiword,"Word, all ASCII",fox,{english_stem},english_stem,{fox})
(5 rows)
Run Code Online (Sandbox Code Playgroud)
正如你从上面看到的,你不会得到快速和棕色的代币
| 归档时间: |
|
| 查看次数: |
1121 次 |
| 最近记录: |