Mic*_*man 4 postgresql full-text-search
我正在使用 PostgreSQL 的全文搜索功能在客户站点上实现搜索功能。我正在使用该ts_headline函数来获取搜索词出现的上下文,但客户对显示的单词选择不满意。特别是,标题似乎始终以搜索词开头,而客户希望它提前几个词开始。
有什么方法可以将 PostgreSQL 配置为具有这种行为,或者修改 ts_headline 调用以获得所需的结果?
编辑:抱歉,首先没有包含一些示例 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"'))
Run Code Online (Sandbox Code Playgroud)
使用 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"'))
Run Code Online (Sandbox Code Playgroud)
您可能需要进行试验。
见MinWords,MaxWords并MaxFragments在http://www.postgresql.org/docs/current/interactive/textsearch-controls.html
| 归档时间: |
|
| 查看次数: |
3328 次 |
| 最近记录: |