Son*_*Son 1 postgresql full-text-search postgresql-9.1
我已经在 postgres DB 中的一些表上配置了全文搜索。当我尝试使用超过 1 个单词构建 tsquery 时,我在 tsquery 中使用 & (AND) 作为分隔符得到单词。实际上,我找不到结果,其中只有我所问的一个词。
例子:
| ID | Name | Description | Rank |
|----|---------|---------------------|------|
| 1 |Somethink|This is very strange | 0.2 |
| 2 |Other |This is strange a bit| 0 |
Run Code Online (Sandbox Code Playgroud)
当我要求“非常奇怪”时,我的 tsquery 看起来像那样'very' & 'strange'
,并且该 tsquery 的排名(ts_rank_cd)大于 0 仅对于 ID == 1,对于 ID == 2 是 0。
我的目标是使第二句话的排名> 0。
任何想法/提示/解决方案?
您可以通过执行以下操作来创建一个OR版本plainto_tsquery:
select replace(plainto_tsquery('foo bar')::text, '&', '|')::tsquery;
Run Code Online (Sandbox Code Playgroud)
类似于 klin 的建议,但利用了plainto_tsquery.
顺便说very一句,我相信是一个停用词,因此它不会包含在任何to_tsquery或plainto_tsquery输出中。
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |