我正在使用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'
)
“在第二种情况下,我们在tsquery中使用tsquery()之后的tsquery,这意味着如果确切的字符串匹配,则应突出显示”“
我假设您的意思是仅突出显示该短语,而不突出显示该短语中的单词,而突出显示在其他位置?虽然这可能是合理的事情,但ts_headline并没有承诺这样做,至少现在在文档中可以看到的任何地方。还是说突出显示短语中的停用词?它也不保证这样做,并且在ts_headline甚至看到它们之前就删除了停用词。
您可以尝试提出一个补丁来将其更改为所需的样式,尽管我怀疑除非向后兼容,否则除非您创建新的标志来对其进行控制,否则它将被拒绝。