雨果的相关内容算法是如何工作的?有哪些因素?



在他们的网站上,他们说:

Hugo根据Front Matter参数使用一组因素来识别页面的相关内容。这可以调整为所需的索引和参数集,也可以保留为Hugo的默认相关内容配置。

但是算法究竟是如何工作的呢?有哪些因素?

gohugoio/hugoPR 3815 中解释了原始方法

已经开始尝试修复#98,但由于某些原因,所有尝试都失败了
这是一个很难解决的问题,我认为失败的主要原因是自下而上的方法,即我们从最难的问题开始:解决夏洛克的最后一个案件。

我现在再次拿起这个球的原因是这个推特帖子:

在页面参数中使用intersect和keywords效果相当好,但它是二次型的,对于较大的网站来说会很慢而无法使用。

因此,我没有解决最难的问题,而是通过概述一个界面来开始这个PR:

type PageSearcher interface {
Search(args ...interface{}) (Pages, error)
SearchIndex(index string, args ...interface{}) (Pages, error)
Similar(p *Page) (Pages, error)
SimilarIndex(index string, p *Page) (Pages, error)
}

欢迎命名建议。

这个想法是用户在config.toml:中定义一组索引

indexes:
- param: keywords
weight: 1
- param: tags
weight: 3

然后我们懒洋洋地从中建立某种索引,然后你可以进行快速搜索,比如:

{{ .Site.RegularPages.Similar . }}
{{ .Site.RegularPages.Search "hugo" }}
{{ .Site.RegularPages.SearchIndex "keywords" "hugo" | limit 10 }}

初始实现:gohugoio/ugo提交3b4f17b

最新更新