PostgreSQL全文搜索标题未包含足够的上下文

PostgreSQL全文搜索标题未包含足够的上下文,postgresql,full-text-search,Postgresql,Full Text Search,我正在使用PostgreSQL的全文搜索功能在客户端网站上实现搜索功能。我正在使用ts_headline函数获取搜索词出现的上下文,但是客户端对显示的词的选择不满意。特别是,标题似乎总是以搜索词开头,而客户希望它早几个词开始 有没有办法将PostgreSQL配置为具有此行为,或者修改ts_标题调用以获得所需的结果 编辑:很抱歉没有首先包含一些示例SQL SELECT ts_headline('english', "text", plainto_tsquery('"endpoints"')

我正在使用PostgreSQL的全文搜索功能在客户端网站上实现搜索功能。我正在使用
ts_headline
函数获取搜索词出现的上下文,但是客户端对显示的词的选择不满意。特别是,标题似乎总是以搜索词开头,而客户希望它早几个词开始

有没有办法将PostgreSQL配置为具有此行为,或者修改ts_标题调用以获得所需的结果

编辑:很抱歉没有首先包含一些示例SQL

SELECT
    ts_headline('english', "text", plainto_tsquery('"endpoints"'))
FROM "Page"
WHERE to_tsvector("text") @@ plainto_tsquery('"endpoints"') 
ORDER BY ts_rank(to_tsvector("text"), plainto_tsquery('"endpoints"'))

使用MaxFragments选项,您可能会得到更好的结果。同样,你也可以玩MinWords和MaxWords,例如

SELECT
    ts_headline('english', "text", plainto_tsquery('"endpoints"'), 'MaxFragments=0, MinWords=5, MaxWords=9')
FROM "Page"
WHERE
    to_tsvector("text") @@ plainto_tsquery('"endpoints"') 
ORDER BY
    ts_rank(to_tsvector("text"), plainto_tsquery('"endpoints"'))
你可能需要进行实验


请参见

中的
MinWords
MaxWords
MaxFragments
,我看不到您在问题中使用的语句示例。这似乎起到了作用(如您所述,进行了一些调整)。非常感谢你!如果要显示整个内容,请使用
HighlightAll=TRUE