1 回答

TA貢獻1827條經驗 獲得超8個贊
PR 3815中解釋了原始方法gohugoio/hugo
已經開始多次嘗試修復#98 —— 由于某種原因,所有嘗試都失敗了。
這是一個很難解決的問題,我認為失敗的主要原因是自下而上的方法,即我們從最難的問題開始:解決 Sherlock 的最后一個案例。
我現(xiàn)在再次拿起這個球的原因是這個 Twitter 線程:
在頁面參數(shù)中使用 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
- 1 回答
- 0 關注
- 119 瀏覽
添加回答
舉報