慕仙森
PR 3815中解释了原始方法gohugoio/hugo已经开始多次尝试修复#98 —— 由于某种原因,所有尝试都失败了。这是一个很难解决的问题,我认为失败的主要原因是自下而上的方法,即我们从最难的问题开始:解决 Sherlock 的最后一个案例。我现在再次拿起这个球的原因是这个 Twitter 线程:在页面参数中使用 intersect 和关键字工作得相当好,但它是二次的,并且对于较大的站点会很慢而无法使用。因此,我没有解决最困难的问题,而是通过概述一个界面来开始这个 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/hugo commit 3b4f17b