ts_headline(PostgreSQL)行为

问题描述 投票:0回答:1

我正在使用ts_headline函数来突出显示搜索文本。

所以有两种情况:

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

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

在第二种情况下,我们在tsquery中使用“ tsquery在tsquery()之后”,这意味着如果确切的字符串匹配,则应突出显示它,但其作用与前一个相同。

SELECT ts_headline(
    text,
    to_tsquery('apply<->for<->the<->purposes'),
    'StartSel = <span>, StopSel = </span>,HighlightAll = true'
)
sql postgresql highlight
1个回答
0
投票

“在第二种情况下,我们在tsquery中使用tsquery()之后的tsquery,这意味着如果确切的字符串匹配,则应突出显示”“

我假设您的意思是仅突出显示该短语,而不突出显示该短语中的单词,而突出显示在其他位置?虽然这可能是合理的事情,但ts_headline并没有承诺这样做,至少现在在文档中可以看到的任何地方。还是说突出显示短语中的停用词?它也不保证这样做,并且在ts_headline甚至看到它们之前就删除了停用词。

您可以尝试提出一个补丁来将其更改为所需的样式,尽管我怀疑除非向后兼容,否则除非您创建新的标志来对其进行控制,否则它将被拒绝。

© www.soinside.com 2019 - 2024. All rights reserved.