From 05a04a1468cd1342fea1379957a0d8e615e8af1a Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 11 Dec 2024 10:05:14 +0800 Subject: [PATCH] :art: Improve search highlighting https://github.com/siyuan-note/siyuan/issues/13423 --- kernel/model/file.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kernel/model/file.go b/kernel/model/file.go index b7c96fe65..4f78f8357 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -795,13 +795,14 @@ func GetDoc(startID, endID, id string, index int, query string, queryTypes map[s query = filterQueryInvisibleChars(query) if "" != query && (0 == queryMethod || 1 == queryMethod || 3 == queryMethod) { // 只有关键字、查询语法和正则表达式搜索支持高亮 - if 0 == queryMethod { - query = stringQuery(query) - } typeFilter := buildTypeFilter(queryTypes) - if 0 == queryMethod || 1 == queryMethod { + switch queryMethod { + case 0: + query = strings.ReplaceAll(query, "'", "''") // 不需要转义双引号,因为条件都是通过单引号包裹的,只需要转义单引号即可 + keywords = strings.Split(query, " ") + case 1: keywords = highlightByFTS(query, typeFilter, rootID) - } else { + case 3: keywords = highlightByRegexp(query, typeFilter, rootID) } }