@fgbg/mdocs 1.3.17 → 1.3.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/agent-skills/changelog/SKILL.md +18 -0
- package/agent-skills/index.json +1 -1
- package/agent-skills/usage-search/SKILL.md +14 -11
- package/dist/server/agent/Agent/tool-ui-effects.js +7 -1
- package/dist/server/agent/Agent/tool-ui-effects.js.map +1 -1
- package/dist/server/db/schema.js +30 -0
- package/dist/server/db/schema.js.map +1 -1
- package/dist/server/search/document-index-manager.js +33 -40
- package/dist/server/search/document-index-manager.js.map +1 -1
- package/dist/server/search/document-index-manager.test.js +194 -14
- package/dist/server/search/document-index-manager.test.js.map +1 -1
- package/dist/server/search/search.service.js +150 -42
- package/dist/server/search/search.service.js.map +1 -1
- package/dist/web/assets/{AgentChatPanel-C3c14Bo_.js → AgentChatPanel-DTj8Nz0Z.js} +2 -2
- package/dist/web/assets/{AgentSkillFormCard-BYUjSFe1.js → AgentSkillFormCard-DTgxybJh.js} +3 -3
- package/dist/web/assets/{AiWriteWorkbench-ze827qk7.js → AiWriteWorkbench-D2RzXzty.js} +3 -3
- package/dist/web/assets/{DiagramEditor-NtNY3sZL-Cie6NhLx.js → DiagramEditor-NtNY3sZL-B2Aeu79R.js} +1 -1
- package/dist/web/assets/{DocChrome-ixaNyUG9.js → DocChrome-4qmjr6wa.js} +1 -1
- package/dist/web/assets/{DocumentEditor-ByqPHijF.js → DocumentEditor-KEURMFDp.js} +1 -1
- package/dist/web/assets/{HtmlEditor-CpqCAPAr.js → HtmlEditor-jCKtKOCT.js} +1 -1
- package/dist/web/assets/{MergeView-D93ZHlTG.js → MergeView-eRcs-x1s.js} +2 -2
- package/dist/web/assets/{PlaygroundPage-CodSaeWS.js → PlaygroundPage-M7fqYn4Z.js} +1 -1
- package/dist/web/assets/SettingsPage-mS3g_vBq.js +1 -0
- package/dist/web/assets/{Toolbar-CSKpV4ua.js → Toolbar-F3tR5o7R.js} +1 -1
- package/dist/web/assets/{VisitorPickerModal-CqDA1S9F.js → VisitorPickerModal-CPjKg8ox.js} +1 -1
- package/dist/web/assets/{check-CN9m0reb.js → check-CQSGOkW1.js} +1 -1
- package/dist/web/assets/{copy-DFs3qk19.js → copy-BMAJ--_Y.js} +1 -1
- package/dist/web/assets/index-C8iEyMxp.css +1 -0
- package/dist/web/assets/{index-CUdIA5aE.js → index-DUu4Is5p.js} +50 -45
- package/dist/web/assets/{meta2dEngine-BD2XbzaV-SYn2XtSh.js → meta2dEngine-BD2XbzaV-BAZUiXoN.js} +1 -1
- package/dist/web/assets/{plus-QDhBbIRF.js → plus-C3uXIATM.js} +1 -1
- package/dist/web/assets/{react-Bf45libg.js → react-BXGUMaBS.js} +3 -3
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/SettingsPage-C8doYEbb.js +0 -6
- package/dist/web/assets/index-C0ujN3sT.css +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
面向个人开发者与小团队:产品内 **智能助手 + 帮写**,外部 **CLI / Skills** 接入 Cursor / Claude;SQLite + 本地文件,**无账户**即可协作。
|
|
6
6
|
|
|
7
|
-
[文档站点](https://xuhuafeifei.github.io/mdocs-site/) · [GitHub](https://github.com/xuhuafeifei/mdocs) · [npm `@fgbg/mdocs`](https://www.npmjs.com/package/@fgbg/mdocs) · 当前版本 **1.3.
|
|
7
|
+
[文档站点](https://xuhuafeifei.github.io/mdocs-site/) · [GitHub](https://github.com/xuhuafeifei/mdocs) · [npm `@fgbg/mdocs`](https://www.npmjs.com/package/@fgbg/mdocs) · 当前版本 **1.3.19**
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<img src="image/site主页.png" alt="mdocs 文档站点首页" width="860" />
|
|
@@ -10,6 +10,24 @@ source: changelog.md
|
|
|
10
10
|
|
|
11
11
|
现行文档里,产品概念「域」已改称 **工作空间**。下面各版本仍按当时的叫法记录。
|
|
12
12
|
|
|
13
|
+
## v1.3.19
|
|
14
|
+
|
|
15
|
+
同 v1.3.18(npm 上 1.3.18 卡在 staged,改发此版本)。
|
|
16
|
+
|
|
17
|
+
## v1.3.18
|
|
18
|
+
|
|
19
|
+
### 文档搜索
|
|
20
|
+
- **侧栏搜索 + ⌘K / Ctrl+K**:当前工作空间悬浮搜索浮层,点结果直接打开文章
|
|
21
|
+
- **标题独立索引**:标题与正文分两路 FTS;标题命中权重更高,排序更靠前
|
|
22
|
+
- 搜索结果展示**作者**与**最后修改时间**
|
|
23
|
+
- 查询侧同步 jieba 分词,修复中文多字词难以命中的问题
|
|
24
|
+
|
|
25
|
+
### 知识图谱
|
|
26
|
+
- 单击文档(doc)节点时直接打开来源文章
|
|
27
|
+
|
|
28
|
+
### 侧栏
|
|
29
|
+
- 操作栏收紧间距并略增宽度,避免新建/搜索/图谱图标换行
|
|
30
|
+
|
|
13
31
|
## v1.3.17
|
|
14
32
|
|
|
15
33
|
### 侧栏与目录
|
package/agent-skills/index.json
CHANGED
|
@@ -1,34 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: usage-search
|
|
3
3
|
name: "全文搜索"
|
|
4
|
-
description: "mdocs
|
|
4
|
+
description: "mdocs 内置基于 FTS5(SQLite 全文索引)的搜索,支持中文 jieba 分词。"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: usage/search.md
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# 全文搜索
|
|
10
10
|
|
|
11
|
-
mdocs
|
|
11
|
+
mdocs 内置基于 FTS5(SQLite 全文索引)的搜索,支持中文 jieba 分词。
|
|
12
12
|
|
|
13
13
|
## 搜索入口
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
- **侧栏**:目录区域的搜索图标
|
|
16
|
+
- **快捷键**:`⌘K`(macOS)/ `Ctrl+K`(Windows / Linux)
|
|
17
|
+
|
|
18
|
+
打开后是屏幕中部的悬浮搜索框,默认只搜**当前工作空间**。点击结果用文档 ID 打开文章并关闭浮层。
|
|
16
19
|
|
|
17
20
|
## 搜索能力
|
|
18
21
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
+
- **标题优先**:标题与正文分两路索引;标题命中权重更高,排序更靠前
|
|
23
|
+
- **全文检索**:正文同样可搜;两路结果按文档合并打分
|
|
24
|
+
- **中文分词**:写入与查询都走 jieba,提高中文召回
|
|
22
25
|
- **权限过滤**:自动过滤当前访客无权阅读的文档
|
|
23
|
-
-
|
|
26
|
+
- **结果信息**:展示标题、作者、最后修改时间、路径与正文片段
|
|
24
27
|
|
|
25
28
|
## 限制搜索范围
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
Web 端浮层固定为当前工作空间。CLI / Agent 可通过 `domainId` 限定范围;不传则可跨可读工作空间检索。
|
|
28
31
|
|
|
29
32
|
## 索引更新
|
|
30
33
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
+
- 文档创建或更新后自动标记 dirty,异步重建(正文 + 标题两路)
|
|
35
|
+
- 默认约每 60 秒扫描一次待索引文档
|
|
36
|
+
- 索引更新不影响文档正常访问
|
|
34
37
|
|
|
@@ -30,7 +30,13 @@ export function createToolUiEffectsHandler(onEvent) {
|
|
|
30
30
|
.map((r) => ({
|
|
31
31
|
documentId: String(r.documentId ?? "").trim(),
|
|
32
32
|
title: String(r.displayName ?? "").trim() || "未命名文档",
|
|
33
|
-
summary:
|
|
33
|
+
summary: [
|
|
34
|
+
String(r.ownerVisitorName ?? "").trim(),
|
|
35
|
+
String(r.updatedAt ?? "").trim(),
|
|
36
|
+
String(r.snippet ?? "").trim(),
|
|
37
|
+
]
|
|
38
|
+
.filter(Boolean)
|
|
39
|
+
.join(" · "),
|
|
34
40
|
}))
|
|
35
41
|
.filter((r) => r.documentId);
|
|
36
42
|
onEvent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-ui-effects.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tool-ui-effects.ts"],"names":[],"mappings":"AAMA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,iBAAiB;IACjB,eAAe;IACf,eAAe;CAChB,CAAC,CAAC;AAQH;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAA0C;IACnF,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEvD,OAAO,CAAC,KAA2B,EAAQ,EAAE;QAC3C,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,KAAK,CAAC,QAAQ,KAAK,sBAAsB,EAAE,CAAC;YAC9C,MAAM,MAAM,GACV,KAAK,CAAC,MACP,EAAE,OAAO,EAAE,MAAM,CAAC;YACnB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/C,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACnC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,OAAO,GAAI,KAAK,CAAC,MAAuD;YAC5E,EAAE,OAAO,CAAC;QAEZ,IAAI,KAAK,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YAC1C,MAAM,OAAO,GACV,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-ui-effects.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tool-ui-effects.ts"],"names":[],"mappings":"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"}
|
package/dist/server/db/schema.js
CHANGED
|
@@ -134,6 +134,20 @@ const SCHEMA_STATEMENTS = [
|
|
|
134
134
|
owner_visitor_id UNINDEXED,
|
|
135
135
|
permission UNINDEXED,
|
|
136
136
|
tokenize='unicode61'
|
|
137
|
+
)`,
|
|
138
|
+
`CREATE TABLE IF NOT EXISTS documents_fts_title_rowid (
|
|
139
|
+
document_id TEXT PRIMARY KEY,
|
|
140
|
+
fts_rowid INTEGER NOT NULL
|
|
141
|
+
)`,
|
|
142
|
+
`CREATE VIRTUAL TABLE IF NOT EXISTS documents_fts_title USING fts5(
|
|
143
|
+
title,
|
|
144
|
+
document_id UNINDEXED,
|
|
145
|
+
display_name UNINDEXED,
|
|
146
|
+
relative_path UNINDEXED,
|
|
147
|
+
domain_id UNINDEXED,
|
|
148
|
+
owner_visitor_id UNINDEXED,
|
|
149
|
+
permission UNINDEXED,
|
|
150
|
+
tokenize='unicode61'
|
|
137
151
|
)`,
|
|
138
152
|
`CREATE TABLE IF NOT EXISTS cli_tokens (
|
|
139
153
|
token_id TEXT PRIMARY KEY,
|
|
@@ -205,6 +219,7 @@ export function applySchema(db) {
|
|
|
205
219
|
migrateDocumentsTable(db);
|
|
206
220
|
migrateDocumentsDirty(db);
|
|
207
221
|
migrateDocumentsHeadCommit(db);
|
|
222
|
+
migrateDocumentsTitleFts(db);
|
|
208
223
|
backfillFolderDescHeadCommits(db);
|
|
209
224
|
migrateVisitorsRecoveryCode(db);
|
|
210
225
|
migrateVisitorsPasswordHash(db);
|
|
@@ -330,6 +345,21 @@ function migrateDocumentsDirty(db) {
|
|
|
330
345
|
return;
|
|
331
346
|
db.exec(`ALTER TABLE documents ADD COLUMN is_dirty INTEGER NOT NULL DEFAULT 1`);
|
|
332
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* 标题 FTS 表已由 SCHEMA_STATEMENTS 的 CREATE IF NOT EXISTS 建好。
|
|
350
|
+
* 升级库:若 title 映射为空但已有干净 md 文档,说明旧索引只有正文路,整批标 dirty 以便补建标题索引。
|
|
351
|
+
*/
|
|
352
|
+
function migrateDocumentsTitleFts(db) {
|
|
353
|
+
const titleCount = db.prepare(`SELECT COUNT(*) AS c FROM documents_fts_title_rowid`).get().c;
|
|
354
|
+
if (titleCount > 0)
|
|
355
|
+
return;
|
|
356
|
+
const cleanMd = db
|
|
357
|
+
.prepare(`SELECT COUNT(*) AS c FROM documents WHERE file_type = 'md' AND is_dirty = 0`)
|
|
358
|
+
.get().c;
|
|
359
|
+
if (cleanMd === 0)
|
|
360
|
+
return;
|
|
361
|
+
db.prepare(`UPDATE documents SET is_dirty = 1 WHERE file_type = 'md'`).run();
|
|
362
|
+
}
|
|
333
363
|
/** 为 documents 表添加 head_commit_id 列(若不存在)。 */
|
|
334
364
|
function migrateDocumentsHeadCommit(db) {
|
|
335
365
|
const names = documentColumnNames(db);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/server/db/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAE/E,gCAAgC;AAChC,MAAM,iBAAiB,GAAa;IAClC;;;;;;;;IAQE;IACF,qFAAqF;IACrF;;;;;;;;IAQE;IACF,0FAA0F;IAC1F,6FAA6F;IAC7F;;;;;;;IAOE;IACF;;;;;;;;;;;;;;;;;IAiBE;IACF,0EAA0E;IAC1E,gFAAgF;IAChF,qEAAqE;IACrE;;;;;;;;IAQE;IACF,6GAA6G;IAC7G;;;;;;IAME;IACF;;;;;;;;IAQE;IACF;;;;;;;;IAQE;IACF,6EAA6E;IAC7E,oFAAoF;IACpF,yCAAyC;IACzC,+BAA+B;IAC/B;;;;;;IAME;IACF;;;;;IAKE;IACF,uFAAuF;IACvF;;;;;IAKE;IACF,oFAAoF;IACpF,sFAAsF;IACtF;;;;;;;IAOE;IACF,6GAA6G;IAC7G;;;IAGE;IACF;;;;;;;;;IASE;IACF;;;;;;;IAOE;IACF,8EAA8E;IAC9E;;;;;IAKE;IACF,qFAAqF;IACrF;;;;;;;;;;;;IAYE;IACF,sGAAsG;IACtG,iFAAiF;IACjF,mFAAmF;IACnF;;;;;;;;;;;IAWE;IACF;;;;;;;;IAQE;IACF,gGAAgG;IAChG,kHAAkH;CACnH,CAAC;AAGF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAqB;IAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAC5B,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC/B,6BAA6B,CAAC,EAAE,CAAC,CAAC;QAClC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAChC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAChC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC3B,oCAAoC,CAAC,EAAE,CAAC,CAAC;QACzC,qCAAqC,CAAC,EAAE,CAAC,CAAC;QAC1C,sCAAsC,CAAC,EAAE,CAAC,CAAC;QAC3C,mCAAmC,CAAC,EAAE,CAAC,CAAC;QACxC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAED,6BAA6B;AAC7B,SAAS,iBAAiB,CAAC,EAAqB;IAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAwB,CAAC;IAClF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,oFAAoF;AACpF,SAAS,mBAAmB,CAAC,EAAqB;IAChD,IAAI,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO;IAEpC,uCAAuC;IACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC1D,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,EAAE,CAAC;QACxF,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,0CAA0C;IAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChE,EAAE,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,SAAS,uBAAuB,CAAC,EAAqB;IACpD,iCAAiC;IACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAwB,CAAC;IACrF,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CACjC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,4BAA4B,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,CAC7F,CAAC;IACF,IAAI,cAAc;QAAE,OAAO;IAE3B,iCAAiC;IACjC,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CACN,sFAAsF,CACvF;SACA,GAAG,EAAE,CAAC;IAET,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,sFAAsF,CACvF;aACA,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxB,oBAAoB;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACrB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAChD,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,EAAE,CAAC,IAAI,CAAC;;;;;;;IAON,CAAC,CAAC;IAEJ,EAAE,CAAC,IAAI,CAAC;;;iBAGO,CAAC,CAAC;IAEjB,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9B,EAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;AACvD,CAAC;AAED,uCAAuC;AACvC,SAAS,mBAAmB,CAAC,EAAqB;IAChD,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,mDAAmD,CAAC;SAC5D,GAAG,CAAC,SAAS,CAAC,CAAC;IAClB,IAAI,GAAG;QAAE,OAAO;IAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,EAAE,CAAC,OAAO,CACR;+BAC2B,CAC5B,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED,0EAA0E;AAC1E,SAAS,qBAAqB,CAAC,EAAqB;IAClD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACtC,0BAA0B;IAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO;IAEnC,oCAAoC;IACpC,kCAAkC;IAClC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;IAeN,CAAC,CAAC;IAEJ,EAAE,CAAC,IAAI,CAAC;;;;;mBAKS,CAAC,CAAC;IAEnB,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChC,EAAE,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAEzD,OAAO;IACP,EAAE,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACpF,EAAE,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;AAC5F,CAAC;AAED,2EAA2E;AAC3E,SAAS,qBAAqB,CAAC,EAAqB;IAClD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO;IAClC,EAAE,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;AAClF,CAAC;AAED,8CAA8C;AAC9C,SAAS,0BAA0B,CAAC,EAAqB;IACvD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,OAAO;IACxC,EAAE,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB;IAChD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAwB,CAAC;IACpF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,iDAAiD;AACjD,SAAS,2BAA2B,CAAC,EAAqB;IACxD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAAE,OAAO;IAC5C,EAAE,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAqB;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAwB,CAAC;IACnF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,4CAA4C;AAC5C,SAAS,2BAA2B,CAAC,EAAqB;IACxD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;QAAE,OAAO;IACvC,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;AAChE,CAAC;AAED,wDAAwD;AACxD,SAAS,sBAAsB,CAAC,EAAqB;IACnD,+BAA+B;IAC/B,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,EAA+B,CAAC;IACjH,IAAI,WAAW;QAAE,OAAO;IAExB,6DAA6D;IAC7D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;GAWvB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,EAAE,CAAC;AACb,CAAC;AAED,yDAAyD;AACzD,SAAS,oCAAoC,CAAC,EAAqB;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAwB,CAAC;IAC9F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC;QAAE,OAAO;IAC1D,EAAE,CAAC,IAAI,CACL,2FAA2F,CAC5F,CAAC;AACJ,CAAC;AAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;IAC5C,qBAAqB,EAAE,KAAK;IAC5B,uBAAuB,EAAE,KAAK;CAC/B,CAAC,CAAC;AAEH,+CAA+C;AAC/C,SAAS,qCAAqC,CAAC,EAAqB;IAClE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAwB,CAAC;IAC9F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QACzC,EAAE,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;QAChD,EAAE,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QAC7C,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QAC7C,EAAE,CAAC,IAAI,CACL,gGAAgG,CACjG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;QAChD,EAAE,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACzE,CAAC;IAED,EAAE,CAAC,OAAO,CACR;;;;;6CAKyC,CAC1C,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAChC,CAAC;AAED,6EAA6E;AAC7E,SAAS,sCAAsC,CAAC,EAAqB;IACnE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAwB,CAAC;IAC9F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;QAAE,OAAO;IACzD,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;AACtE,CAAC;AAED,2CAA2C;AAC3C,SAAS,mCAAmC,CAAC,EAAqB;IAChE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAwB,CAAC;IAC9F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAGrE,CAAC;IACJ,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CACjC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,sCAAsC,CAAC,CACzF,CAAC;IAEF,IAAI,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,EAAE,CAAC,IAAI,CACL;qEAC+D,CAChE,CAAC;QACF,EAAE,CAAC,IAAI,CACL;gDAC0C,CAC3C,CAAC;QACF,OAAO;IACT,CAAC;IAED,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;IAgBN,CAAC,CAAC;IAEJ,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;6BAYmB,CAAC,CAAC;IAE7B,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAC7E,EAAE,CAAC,IAAI,CACL;mEAC+D,CAChE,CAAC;IACF,EAAE,CAAC,IAAI,CACL,qFAAqF,CACtF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/server/db/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* 职责:
|
|
5
5
|
* - 标记 dirty:文档创建/更新时将 is_dirty=1
|
|
6
6
|
* - 定时重建:扫描 is_dirty=1 的文档,读取 .md 文件内容,从 Lexical JSON 提取纯文本后写入 FTS5
|
|
7
|
+
* - 同步维护正文索引 documents_fts 与标题索引 documents_fts_title
|
|
7
8
|
* - 外部触发:导出 rebuildAllDirty() 供路由或其他模块主动调用
|
|
8
9
|
* - 乐观锁:通过 updated_at 防止 rebuild 期间并发更新导致的索引覆盖
|
|
9
10
|
* - 内存锁:Set<documentId> 防止 timer 与外部触发同时重建同一文档
|
|
@@ -63,21 +64,14 @@ export function markDirty(documentId) {
|
|
|
63
64
|
.run(documentId);
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
|
-
*
|
|
67
|
+
* 从全文索引中移除文档(正文 + 标题两路)。
|
|
67
68
|
* 文档删除时调用。
|
|
68
69
|
*/
|
|
69
70
|
export function removeIndex(documentId) {
|
|
70
71
|
const db = getDb();
|
|
71
72
|
try {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
.prepare(`SELECT fts_rowid FROM documents_fts_rowid WHERE document_id = ?`)
|
|
75
|
-
.get(documentId);
|
|
76
|
-
if (mapRow) {
|
|
77
|
-
// FTS5 删除语法:INSERT INTO table(table, rowid) VALUES('delete', ?)
|
|
78
|
-
db.prepare(`INSERT INTO documents_fts(documents_fts, rowid) VALUES('delete', ?)`).run(mapRow.fts_rowid);
|
|
79
|
-
db.prepare(`DELETE FROM documents_fts_rowid WHERE document_id = ?`).run(documentId);
|
|
80
|
-
}
|
|
73
|
+
deleteFtsRow(db, "documents_fts", "documents_fts_rowid", documentId);
|
|
74
|
+
deleteFtsRow(db, "documents_fts_title", "documents_fts_title_rowid", documentId);
|
|
81
75
|
}
|
|
82
76
|
catch {
|
|
83
77
|
// 忽略索引删除错误,不影响文档删除的主流程
|
|
@@ -110,21 +104,12 @@ export async function rebuildAllDirty() {
|
|
|
110
104
|
return count;
|
|
111
105
|
}
|
|
112
106
|
/**
|
|
113
|
-
*
|
|
107
|
+
* 重建单篇文档的全文索引(正文 + 标题)。
|
|
114
108
|
*
|
|
115
109
|
* 乐观锁流程:
|
|
116
110
|
* 1. 记录当前 updated_at(版本号)
|
|
117
111
|
* 2. 读取磁盘文件内容
|
|
118
|
-
* 3. 删除旧 FTS 条目 → 插入新 FTS
|
|
119
|
-
* 4. 用 updated_at 条件清除 is_dirty,若不匹配说明索引期间文档被更新,保留 dirty
|
|
120
|
-
*/
|
|
121
|
-
/**
|
|
122
|
-
* 重建单篇文档的全文索引。
|
|
123
|
-
*
|
|
124
|
-
* 乐观锁流程:
|
|
125
|
-
* 1. 记录当前 updated_at(版本号)
|
|
126
|
-
* 2. 读取磁盘文件内容
|
|
127
|
-
* 3. 删除旧 FTS 条目 → 插入新 FTS 条目
|
|
112
|
+
* 3. 删除旧 FTS 条目 → 插入新 FTS 条目(两路)
|
|
128
113
|
* 4. 用 updated_at 条件清除 is_dirty,若不匹配说明索引期间文档被更新,保留 dirty
|
|
129
114
|
*/
|
|
130
115
|
export function rebuildDocument(documentId) {
|
|
@@ -141,28 +126,21 @@ export function rebuildDocument(documentId) {
|
|
|
141
126
|
// ---- 读取磁盘文件内容 ---- 从 Lexical JSON 中提取纯文本用于 FTS5 索引
|
|
142
127
|
const { content } = readDocument(doc.domain_id, doc.relative_path);
|
|
143
128
|
const plainText = extractLexicalText(content);
|
|
144
|
-
|
|
145
|
-
//
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
.get(documentId);
|
|
149
|
-
if (oldMap) {
|
|
150
|
-
try {
|
|
151
|
-
// FTS5 删除语法:INSERT INTO table(table, rowid) VALUES('delete', ?)
|
|
152
|
-
db.prepare(`INSERT INTO documents_fts(documents_fts, rowid) VALUES('delete', ?)`).run(oldMap.fts_rowid);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
// 忽略删除失败
|
|
156
|
-
}
|
|
157
|
-
db.prepare(`DELETE FROM documents_fts_rowid WHERE document_id = ?`).run(documentId);
|
|
158
|
-
}
|
|
159
|
-
// 2. 插入新条目
|
|
160
|
-
const result = db
|
|
129
|
+
const titleTokens = tokenizeForSearch(doc.display_name || "");
|
|
130
|
+
// ---- 重建正文 FTS ----
|
|
131
|
+
deleteFtsRow(db, "documents_fts", "documents_fts_rowid", documentId);
|
|
132
|
+
const bodyResult = db
|
|
161
133
|
.prepare(`INSERT INTO documents_fts(content, document_id, display_name, relative_path, domain_id, owner_visitor_id, permission)
|
|
162
134
|
VALUES(?, ?, ?, ?, ?, ?, ?)`)
|
|
163
135
|
.run(plainText, documentId, doc.display_name, doc.relative_path, doc.domain_id, doc.owner_visitor_id, doc.permission);
|
|
164
|
-
|
|
165
|
-
|
|
136
|
+
db.prepare(`INSERT INTO documents_fts_rowid(document_id, fts_rowid) VALUES(?, ?)`).run(documentId, bodyResult.lastInsertRowid);
|
|
137
|
+
// ---- 重建标题 FTS ----
|
|
138
|
+
deleteFtsRow(db, "documents_fts_title", "documents_fts_title_rowid", documentId);
|
|
139
|
+
const titleResult = db
|
|
140
|
+
.prepare(`INSERT INTO documents_fts_title(title, document_id, display_name, relative_path, domain_id, owner_visitor_id, permission)
|
|
141
|
+
VALUES(?, ?, ?, ?, ?, ?, ?)`)
|
|
142
|
+
.run(titleTokens, documentId, doc.display_name, doc.relative_path, doc.domain_id, doc.owner_visitor_id, doc.permission);
|
|
143
|
+
db.prepare(`INSERT INTO documents_fts_title_rowid(document_id, fts_rowid) VALUES(?, ?)`).run(documentId, titleResult.lastInsertRowid);
|
|
166
144
|
// ---- 乐观锁:确认文档未在索引期间被更新 ----
|
|
167
145
|
const changed = db
|
|
168
146
|
.prepare(`UPDATE documents SET is_dirty = 0 WHERE document_id = ? AND updated_at = ?`)
|
|
@@ -172,6 +150,21 @@ export function rebuildDocument(documentId) {
|
|
|
172
150
|
log.debug("index rebuild skipped for %s: document was concurrently updated", documentId);
|
|
173
151
|
}
|
|
174
152
|
}
|
|
153
|
+
function deleteFtsRow(db, ftsTable, mapTable, documentId) {
|
|
154
|
+
const mapRow = db
|
|
155
|
+
.prepare(`SELECT fts_rowid FROM ${mapTable} WHERE document_id = ?`)
|
|
156
|
+
.get(documentId);
|
|
157
|
+
if (!mapRow)
|
|
158
|
+
return;
|
|
159
|
+
try {
|
|
160
|
+
// 直接按 rowid 删除(FTS5 的 VALUES('delete', rowid) 在部分环境会 SQL logic error)
|
|
161
|
+
db.prepare(`DELETE FROM ${ftsTable} WHERE rowid = ?`).run(mapRow.fts_rowid);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
// 忽略删除失败
|
|
165
|
+
}
|
|
166
|
+
db.prepare(`DELETE FROM ${mapTable} WHERE document_id = ?`).run(documentId);
|
|
167
|
+
}
|
|
175
168
|
// ============================================================
|
|
176
169
|
// Lexical JSON → 纯文本提取
|
|
177
170
|
// ============================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-index-manager.js","sourceRoot":"","sources":["../../../src/server/search/document-index-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"document-index-manager.js","sourceRoot":"","sources":["../../../src/server/search/document-index-manager.ts"],"names":[],"mappings":"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"}
|