TS_HEADLINE(PostgreSQL)行为 [英] ts_headline (PostgreSQL) behavior

查看:10
本文介绍了TS_HEADLINE(PostgreSQL)行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用ts_Headline函数突出显示搜索文本。

因此有两种情况:

在第一种情况下,我们在tsquery中使用"&;"运算符,这意味着id任何关键字都出现在它将突出显示的文本中,这可以很好地工作。

SELECT ts_headline(
    text,
    to_tsquery('apply & for & the & purposes'),
    'StartSel = <span>, StopSel = </span>,HighlightAll = true'
)

在第二种情况下,我们在tsquery中使用"tsquery After tsquery(<;->)",这意味着如果字符串完全匹配,则它应该突出显示,但它的工作方式与前一个字符串相同。

SELECT ts_headline(
    text,
    to_tsquery('apply<->for<->the<->purposes'),
    'StartSel = <span>, StopSel = </span>,HighlightAll = true'
)

推荐答案

"在第二种情况下,我们在tsquery中使用"tsquery After tsquery(<;->)",这意味着如果字符串完全匹配,则它应该突出显示"

我想您的意思是只突出显示该短语,而不是该短语中的单词,而是出现在其他地方?虽然这可能是一件合理的事情,但ts_Headline并没有承诺要这样做,至少现在我在文档中看到的任何地方都是这样。或者你的意思是突出显示短语中的停用词?它也不承诺这样做,停用的单词甚至在ts_Headline看到它们之前就被删除了。

您可以尝试想出一个补丁来更改它以做您想做的事情,尽管我怀疑它会因为向后兼容的原因而被拒绝,除非您创建了新的标志来控制它。

这篇关于TS_HEADLINE(PostgreSQL)行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆