diff --git a/kernel/model/file.go b/kernel/model/file.go index fb9b77265..567db8110 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -187,7 +187,7 @@ func SearchDocsByKeyword(keyword string, flashcard bool) (ret []map[string]strin } } - rootBlocks = sql.QueryRootBlockByCondition(condition) + rootBlocks = sql.QueryRootBlockByCondition(condition, Conf.Search.Limit) } else { for _, box := range boxes { if flashcard { diff --git a/kernel/sql/block_query.go b/kernel/sql/block_query.go index 578f4300a..2ba4f645b 100644 --- a/kernel/sql/block_query.go +++ b/kernel/sql/block_query.go @@ -69,8 +69,8 @@ func queryBlockHashes(rootID string) (ret map[string]string) { return } -func QueryRootBlockByCondition(condition string) (ret []*Block) { - sqlStmt := "SELECT *, length(hpath) - length(replace(hpath, '/', '')) AS lv FROM blocks WHERE type = 'd' AND " + condition + " ORDER BY box DESC,lv ASC LIMIT 128" +func QueryRootBlockByCondition(condition string, limit int) (ret []*Block) { + sqlStmt := "SELECT *, length(hpath) - length(replace(hpath, '/', '')) AS lv FROM blocks WHERE type = 'd' AND " + condition + " ORDER BY box DESC,lv ASC LIMIT " + strconv.Itoa(limit) rows, err := query(sqlStmt) if err != nil { logging.LogErrorf("sql query [%s] failed: %s", sqlStmt, err)