@llangtop/pwiki-core 1.0.8 → 1.2.0

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.
Files changed (54) hide show
  1. package/README.md +39 -39
  2. package/dist/WikiEngine.d.ts.map +1 -1
  3. package/dist/WikiEngine.js +19 -1
  4. package/dist/WikiEngine.js.map +1 -1
  5. package/dist/config.d.ts +1 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +3 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/index.d.ts +4 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/bm25.d.ts +30 -0
  14. package/dist/lib/bm25.d.ts.map +1 -0
  15. package/dist/lib/bm25.js +155 -0
  16. package/dist/lib/bm25.js.map +1 -0
  17. package/dist/lib/indexer.d.ts +1 -0
  18. package/dist/lib/indexer.d.ts.map +1 -1
  19. package/dist/lib/indexer.js +1 -0
  20. package/dist/lib/indexer.js.map +1 -1
  21. package/dist/lib/search.d.ts +3 -0
  22. package/dist/lib/search.d.ts.map +1 -1
  23. package/dist/lib/search.js +128 -20
  24. package/dist/lib/search.js.map +1 -1
  25. package/dist/lib/semantic-compiler.js +165 -165
  26. package/dist/lib/store-index.d.ts +3 -0
  27. package/dist/lib/store-index.d.ts.map +1 -1
  28. package/dist/lib/store-index.js +14 -1
  29. package/dist/lib/store-index.js.map +1 -1
  30. package/dist/lib/store.d.ts +1 -1
  31. package/dist/lib/store.d.ts.map +1 -1
  32. package/dist/lib/store.js +1 -1
  33. package/dist/lib/store.js.map +1 -1
  34. package/dist/lib/tokenizer.d.ts +10 -0
  35. package/dist/lib/tokenizer.d.ts.map +1 -0
  36. package/dist/lib/tokenizer.js +87 -0
  37. package/dist/lib/tokenizer.js.map +1 -0
  38. package/package.json +34 -34
  39. package/dist/WikiEngine.d.ts +0 -73
  40. package/dist/lib/ast-chunker.d.ts +0 -23
  41. package/dist/lib/content-cache.d.ts +0 -13
  42. package/dist/lib/embedder.d.ts +0 -22
  43. package/dist/lib/file-manifest.d.ts +0 -36
  44. package/dist/lib/indexer-compile.d.ts +0 -18
  45. package/dist/lib/indexer-embed.d.ts +0 -21
  46. package/dist/lib/indexer-scan.d.ts +0 -4
  47. package/dist/lib/model-registry.d.ts +0 -18
  48. package/dist/lib/parser.d.ts +0 -9
  49. package/dist/lib/preprocessor.d.ts +0 -36
  50. package/dist/lib/semantic-compiler.d.ts +0 -44
  51. package/dist/lib/semantic-search.d.ts +0 -4
  52. package/dist/lib/store-config.d.ts +0 -25
  53. package/dist/lib/store-vectors.d.ts +0 -17
  54. package/dist/lib/types.d.ts +0 -108
package/README.md CHANGED
@@ -1,39 +1,39 @@
1
- # @llangtop/pwiki-core
2
-
3
- Wiki 知识库搜索引擎。供 `pwiki-cli` 和 `pwiki-mcp` 调用,也可作为库直接引用。
4
-
5
- ## 安装
6
-
7
- ```bash
8
- npm i @llangtop/pwiki-core
9
- ```
10
-
11
- ## 用法
12
-
13
- ```typescript
14
- import { WikiEngine } from "@llangtop/pwiki-core";
15
-
16
- const engine = new WikiEngine({ basePath: "~/.pwiki" });
17
-
18
- // 加载数据源
19
- engine.addSource("/path/to/notes");
20
- await engine.loadSource("/path/to/notes");
21
-
22
- // 搜索(keyword | semantic | hybrid)
23
- const hits = await engine.search("部署流程", "hybrid");
24
-
25
- // 读条目
26
- const { entry, content } = engine.readEntry("notes/技术/deploy.md");
27
- ```
28
-
29
- ## 主要导出
30
-
31
- | 导出 | 类型 | 说明 |
32
- |------|------|------|
33
- | `WikiEngine` | class | 唯一对外 API |
34
- | `keywordSearch` | function | 关键词搜索 |
35
- | `semanticSearch` | function | 语义搜索 |
36
- | `hybridSearch` | function | RRF 混合搜索 |
37
- | `embed` | function | 文本 → 向量 |
38
- | `cosineSimilarity` | function | 余弦相似度 |
39
- | `MODELS` | array | 内置嵌入模型列表 |
1
+ # @llangtop/pwiki-core
2
+
3
+ Wiki 知识库搜索引擎。供 `pwiki-cli` 和 `pwiki-mcp` 调用,也可作为库直接引用。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm i @llangtop/pwiki-core
9
+ ```
10
+
11
+ ## 用法
12
+
13
+ ```typescript
14
+ import { WikiEngine } from "@llangtop/pwiki-core";
15
+
16
+ const engine = new WikiEngine({ basePath: "~/.pwiki" });
17
+
18
+ // 加载数据源
19
+ engine.addSource("/path/to/notes");
20
+ await engine.loadSource("/path/to/notes");
21
+
22
+ // 搜索(keyword | semantic | hybrid)
23
+ const hits = await engine.search("部署流程", "hybrid");
24
+
25
+ // 读条目
26
+ const { entry, content } = engine.readEntry("notes/技术/deploy.md");
27
+ ```
28
+
29
+ ## 主要导出
30
+
31
+ | 导出 | 类型 | 说明 |
32
+ |------|------|------|
33
+ | `WikiEngine` | class | 唯一对外 API |
34
+ | `keywordSearch` | function | 关键词搜索 |
35
+ | `semanticSearch` | function | 语义搜索 |
36
+ | `hybridSearch` | function | RRF 混合搜索 |
37
+ | `embed` | function | 文本 → 向量 |
38
+ | `cosineSimilarity` | function | 余弦相似度 |
39
+ | `MODELS` | array | 内置嵌入模型列表 |
@@ -1 +1 @@
1
- {"version":3,"file":"WikiEngine.d.ts","sourceRoot":"","sources":["../src/WikiEngine.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;gBACT,MAAM,GAAE,YAAiB;IAOrC,IAAI,OAAO,IAAI,MAAM,EAAE,CAA6B;IAEpD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAInC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5C,IAAI,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IASnD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAAsB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAU/E,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuB9E,WAAW,CACT,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAClD,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,SAAK,GAChC,MAAM;IAwBT,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAiCvD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAqBvD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAazE,IAAI,eAAe,IAAI,OAAO,CAAqC;IAE7D,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAe7E,eAAe,IAAI,IAAI;IAEjB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAoBrE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5E,UAAU,IAAI,SAAS,EAAE;IAIzB,IAAI,OAAO;;;;MAQV;IAED,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM;;;;;IAahC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAkB1E,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO;IAMpD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAkD/G,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAkB5K,MAAM,IAAI,UAAU;CAmBrB"}
1
+ {"version":3,"file":"WikiEngine.d.ts","sourceRoot":"","sources":["../src/WikiEngine.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import * as emb from "./lib/embedder.js";
12
12
  import * as cache from "./lib/content-cache.js";
13
13
  import { keywordSearch } from "./lib/search.js";
14
14
  import { semanticSearch, hybridSearch } from "./lib/semantic-search.js";
15
+ import { buildBm25Stats } from "./lib/bm25.js";
16
+ import { writeBm25Stats } from "./lib/store-index.js";
15
17
  import { scanDir } from "./lib/indexer-scan.js";
16
18
  import { generateEmbeddings as doGenerateEmbeddings } from "./lib/indexer-embed.js";
17
19
  import { storeFileLLMVector } from "./lib/indexer-compile.js";
@@ -32,13 +34,26 @@ export class WikiEngine {
32
34
  }
33
35
  removeSource(target) {
34
36
  const removed = cfg.removeSource(target);
35
- if (removed)
37
+ if (removed) {
36
38
  idx.removeEntriesBySource(removed);
39
+ // 重建 BM25 统计
40
+ try {
41
+ const stats = buildBm25Stats();
42
+ writeBm25Stats(stats);
43
+ }
44
+ catch { /* ignore */ }
45
+ }
37
46
  return removed;
38
47
  }
39
48
  async loadSource(absPath) {
40
49
  const entries = await scanDir(absPath);
41
50
  idx.mergeIndex(entries);
51
+ // 重建 BM25 统计(每次 load/refresh 后)
52
+ try {
53
+ const stats = buildBm25Stats();
54
+ writeBm25Stats(stats);
55
+ }
56
+ catch { /* 统计失败不影响主流程 */ }
42
57
  if (cfg.getSemanticEnabled() && entries.length > 0) {
43
58
  doGenerateEmbeddings(absPath, entries).catch(() => { });
44
59
  }
@@ -311,6 +326,9 @@ export class WikiEngine {
311
326
  }),
312
327
  });
313
328
  const data = await res.json();
329
+ if (!res.ok) {
330
+ return { ok: false, msg: `API ${res.status}: ${JSON.stringify(data).slice(0, 300)}` };
331
+ }
314
332
  const raw = data?.choices?.[0]?.message?.content || "";
315
333
  const parsed = parseFileLLMResult(raw);
316
334
  if (!parsed)
@@ -1 +1 @@
1
- {"version":3,"file":"WikiEngine.js","sourceRoot":"","sources":["../src/WikiEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WikiEngine.js","sourceRoot":"","sources":["../src/WikiEngine.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -14,5 +14,6 @@ export declare function vectorFile(): string;
14
14
  export declare function manifestFile(): string;
15
15
  export declare function compiledDir(): string;
16
16
  export declare function modelsDir(): string;
17
+ export declare function bm25StatsFile(): string;
17
18
  export declare function cacheDir(): string;
18
19
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,uCAAuC;AACvC,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAOxD;AAED,oBAAoB;AACpB,wBAAgB,QAAQ,IAAI,MAAM,CAGjC;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG9C;AAID,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAIjC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,uCAAuC;AACvC,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAOxD;AAED,oBAAoB;AACpB,wBAAgB,QAAQ,IAAI,MAAM,CAGjC;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG9C;AAID,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAIjC"}
package/dist/config.js CHANGED
@@ -49,6 +49,9 @@ export function modelsDir() {
49
49
  mkdirSync(d, { recursive: true });
50
50
  return d;
51
51
  }
52
+ export function bm25StatsFile() {
53
+ return join(wikiHome(), "bm25_stats.json");
54
+ }
52
55
  export function cacheDir() {
53
56
  const d = join(wikiHome(), "cache");
54
57
  mkdirSync(d, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,0DAA0D;AAC1D,mDAAmD;AAEnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,IAAI,KAAK,GAAG,EAAE,CAAC;AAOf,uCAAuC;AACvC,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,KAAK,GAAG,OAAO,CACb,MAAM,EAAE,QAAQ;QACd,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,QAAQ,CAAC,CACrE,CAAC;IACF,UAAU,EAAE,CAAC;AACf,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,KAAK;QAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,UAAU,EAAE,CAAC;AACf,CAAC;AAED,oBAAoB;AAEpB,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;IACvC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,+CAA+C;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/E,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,eAAe;AAEf,SAAS,UAAU;IACjB,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,0DAA0D;AAC1D,mDAAmD;AAEnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,IAAI,KAAK,GAAG,EAAE,CAAC;AAOf,uCAAuC;AACvC,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,KAAK,GAAG,OAAO,CACb,MAAM,EAAE,QAAQ;QACd,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,QAAQ,CAAC,CACrE,CAAC;IACF,UAAU,EAAE,CAAC;AACf,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,KAAK;QAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,UAAU,EAAE,CAAC;AACf,CAAC;AAED,oBAAoB;AAEpB,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;IACvC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,+CAA+C;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/E,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,eAAe;AAEf,SAAS,UAAU;IACjB,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,12 +4,15 @@ export { initWikiConfig, setWikiHome, wikiHome } from "./config.js";
4
4
  export { BUILTIN_MODELS as MODELS, getBuiltinModels, findModel, getCurrentModel, selectModel, getDefaultModelId, } from "./lib/model-registry.js";
5
5
  export type { ModelInfo } from "./lib/model-registry.js";
6
6
  export type { SearchMode, SearchHit, FileEntry, ChunkInfo, RawChunk, CompiledChunk, FileSegment, FileLLMData, CompiledFileRecord, EmbeddingData, WikiStatus, } from "./lib/types.js";
7
- export { getSources, addSource, removeSource, getSemanticEnabled, setSemanticEnabled, readModelId, writeModelId, getWikiModel, getIndex, mergeIndex, removeEntry, updateEntryPath, getEntry, stats, } from "./lib/store.js";
7
+ export { getSources, addSource, removeSource, getSemanticEnabled, setSemanticEnabled, readModelId, writeModelId, getWikiModel, getIndex, mergeIndex, removeEntry, updateEntryPath, getEntry, stats, readBm25Stats, writeBm25Stats, } from "./lib/store.js";
8
8
  export { getEmbeddings, setEmbeddings, getChunkInfo, setChunkInfo, getCentroid, setCentroid, clearCentroid, } from "./lib/store-vectors.js";
9
9
  export { setContent, getContent, hasContent, clearAll, cacheSize } from "./lib/content-cache.js";
10
10
  export { initialize as initEmbedder, isAvailable as embedderAvailable, downloadModel, embed, embedBatch, cosineSimilarity, getModelName, getModelRepo, getModelSource, } from "./lib/embedder.js";
11
11
  export { keywordSearch } from "./lib/search.js";
12
12
  export { semanticSearch, hybridSearch } from "./lib/semantic-search.js";
13
+ export { tokenize } from "./lib/tokenizer.js";
14
+ export { buildBm25Stats, bm25Score, idf, getDocTokens } from "./lib/bm25.js";
15
+ export type { Bm25Stats } from "./lib/bm25.js";
13
16
  export { scanDir } from "./lib/indexer-scan.js";
14
17
  export { extractChunks, generateEmbeddings, embedSingleFile, recomputeCentroid } from "./lib/indexer-embed.js";
15
18
  export { getRawChunks, storeCompiledChunks, storeFileSegments, storeFileLLMVector } from "./lib/indexer-compile.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EACL,cAAc,IAAI,MAAM,EACxB,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,GAC7E,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,YAAY,EACV,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAC3C,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EACjD,kBAAkB,EAAE,aAAa,EAAE,UAAU,GAC9C,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,UAAU,EAAE,SAAS,EAAE,YAAY,EACnC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,YAAY,EAAE,YAAY,EACvC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,GACpE,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAAE,aAAa,GACxC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGjG,OAAO,EACL,UAAU,IAAI,YAAY,EAC1B,WAAW,IAAI,iBAAiB,EAChC,aAAa,EAAE,KAAK,EAAE,UAAU,EAChC,gBAAgB,EAChB,YAAY,EAAE,YAAY,EAAE,cAAc,GAC3C,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EACL,qBAAqB,EAAE,kBAAkB,EACzC,kBAAkB,EAAE,mBAAmB,EACvC,0BAA0B,EAAE,sBAAsB,EAAE,iBAAiB,EACrE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAC9D,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EACL,cAAc,IAAI,MAAM,EACxB,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,GAC7E,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,YAAY,EACV,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAC3C,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EACjD,kBAAkB,EAAE,aAAa,EAAE,UAAU,GAC9C,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,UAAU,EAAE,SAAS,EAAE,YAAY,EACnC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,YAAY,EAAE,YAAY,EACvC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EACnE,aAAa,EAAE,cAAc,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAAE,aAAa,GACxC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGjG,OAAO,EACL,UAAU,IAAI,YAAY,EAC1B,WAAW,IAAI,iBAAiB,EAChC,aAAa,EAAE,KAAK,EAAE,UAAU,EAChC,gBAAgB,EAChB,YAAY,EAAE,YAAY,EAAE,cAAc,GAC3C,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7E,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EACL,qBAAqB,EAAE,kBAAkB,EACzC,kBAAkB,EAAE,mBAAmB,EACvC,0BAA0B,EAAE,sBAAsB,EAAE,iBAAiB,EACrE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAC9D,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ export { initWikiConfig, setWikiHome, wikiHome } from "./config.js";
4
4
  // Model registry
5
5
  export { BUILTIN_MODELS as MODELS, getBuiltinModels, findModel, getCurrentModel, selectModel, getDefaultModelId, } from "./lib/model-registry.js";
6
6
  // Store
7
- export { getSources, addSource, removeSource, getSemanticEnabled, setSemanticEnabled, readModelId, writeModelId, getWikiModel, getIndex, mergeIndex, removeEntry, updateEntryPath, getEntry, stats, } from "./lib/store.js";
7
+ export { getSources, addSource, removeSource, getSemanticEnabled, setSemanticEnabled, readModelId, writeModelId, getWikiModel, getIndex, mergeIndex, removeEntry, updateEntryPath, getEntry, stats, readBm25Stats, writeBm25Stats, } from "./lib/store.js";
8
8
  export { getEmbeddings, setEmbeddings, getChunkInfo, setChunkInfo, getCentroid, setCentroid, clearCentroid, } from "./lib/store-vectors.js";
9
9
  // Content cache
10
10
  export { setContent, getContent, hasContent, clearAll, cacheSize } from "./lib/content-cache.js";
@@ -13,6 +13,9 @@ export { initialize as initEmbedder, isAvailable as embedderAvailable, downloadM
13
13
  // Search
14
14
  export { keywordSearch } from "./lib/search.js";
15
15
  export { semanticSearch, hybridSearch } from "./lib/semantic-search.js";
16
+ // BM25 & Tokenizer
17
+ export { tokenize } from "./lib/tokenizer.js";
18
+ export { buildBm25Stats, bm25Score, idf, getDocTokens } from "./lib/bm25.js";
16
19
  // Indexer
17
20
  export { scanDir } from "./lib/indexer-scan.js";
18
21
  export { extractChunks, generateEmbeddings, embedSingleFile, recomputeCentroid } from "./lib/indexer-embed.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEpE,iBAAiB;AACjB,OAAO,EACL,cAAc,IAAI,MAAM,EACxB,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,GAC7E,MAAM,yBAAyB,CAAC;AAUjC,QAAQ;AACR,OAAO,EACL,UAAU,EAAE,SAAS,EAAE,YAAY,EACnC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,YAAY,EAAE,YAAY,EACvC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,GACpE,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAAE,aAAa,GACxC,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEjG,WAAW;AACX,OAAO,EACL,UAAU,IAAI,YAAY,EAC1B,WAAW,IAAI,iBAAiB,EAChC,aAAa,EAAE,KAAK,EAAE,UAAU,EAChC,gBAAgB,EAChB,YAAY,EAAE,YAAY,EAAE,cAAc,GAC3C,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExE,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEpH,cAAc;AACd,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EAAE,kBAAkB,EACzC,kBAAkB,EAAE,mBAAmB,EACvC,0BAA0B,EAAE,sBAAsB,EAAE,iBAAiB,EACrE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAC9D,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEpE,iBAAiB;AACjB,OAAO,EACL,cAAc,IAAI,MAAM,EACxB,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,GAC7E,MAAM,yBAAyB,CAAC;AAUjC,QAAQ;AACR,OAAO,EACL,UAAU,EAAE,SAAS,EAAE,YAAY,EACnC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,YAAY,EAAE,YAAY,EACvC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EACnE,aAAa,EAAE,cAAc,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAAE,aAAa,GACxC,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEjG,WAAW;AACX,OAAO,EACL,UAAU,IAAI,YAAY,EAC1B,WAAW,IAAI,iBAAiB,EAChC,aAAa,EAAE,KAAK,EAAE,UAAU,EAChC,gBAAgB,EAChB,YAAY,EAAE,YAAY,EAAE,cAAc,GAC3C,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExE,mBAAmB;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7E,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEpH,cAAc;AACd,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EAAE,kBAAkB,EACzC,kBAAkB,EAAE,mBAAmB,EACvC,0BAA0B,EAAE,sBAAsB,EAAE,iBAAiB,EACrE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAC9D,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { FileEntry } from "./types.js";
2
+ /** BM25 统计快照 */
3
+ export interface Bm25Stats {
4
+ N: number;
5
+ avgdl: number;
6
+ df: Record<string, number>;
7
+ }
8
+ /**
9
+ * 获取文档的完整分词结果(含路径前缀)
10
+ * 统计构建和搜索都通过此函数,确保 token 对齐。
11
+ */
12
+ export declare function getDocTokens(entry: FileEntry): string[] | null;
13
+ /**
14
+ * 遍历所有已索引文件,构建 BM25 统计
15
+ */
16
+ export declare function buildBm25Stats(): Bm25Stats;
17
+ /**
18
+ * IDF 计算 (BM25 标准公式)
19
+ */
20
+ export declare function idf(term: string, stats: Bm25Stats): number;
21
+ /**
22
+ * 计算一篇文档对查询的 BM25 分数
23
+ *
24
+ * @param queryTokens 查询分词结果
25
+ * @param docTokens 文档分词结果
26
+ * @param stats 全局 BM25 统计
27
+ * @returns BM25 score(未缩放)
28
+ */
29
+ export declare function bm25Score(queryTokens: string[], docTokens: string[], stats: Bm25Stats): number;
30
+ //# sourceMappingURL=bm25.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bm25.d.ts","sourceRoot":"","sources":["../../src/lib/bm25.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,gBAAgB;AAChB,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAqBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,CAK9D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,SAAS,CA+C1C;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAK1D;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,SAAS,GACf,MAAM,CA0BR"}
@@ -0,0 +1,155 @@
1
+ // bm25.ts — BM25 统计构建与评分
2
+ //
3
+ // 统计数据:
4
+ // N — 文档总数
5
+ // avgdl — 平均文档 token 数
6
+ // df — 每个 term 出现在多少篇文档中 (Document Frequency)
7
+ //
8
+ // 文档预处理(与语义搜索对齐):
9
+ // 原始正文前追加 \`[路径层级]\n\`,使得文件名和目录名参与分词。
10
+ // Markdown 标题(# ...)本已是正文一部分,无需额外处理。
11
+ //
12
+ // 反向降噪:
13
+ // 构建统计后删除 df >= N × 0.8 的 term(高频背景词停用)。
14
+ //
15
+ // BM25 公式 (k1=1.5, b=0.75):
16
+ // score(D, Q) = Σ IDF(t) × (tf × (k1+1)) / (tf + k1 × (1-b + b×dl/avgdl))
17
+ // IDF(t) = ln((N - df + 0.5) / (df + 0.5) + 1)
18
+ import { tokenize } from "./tokenizer.js";
19
+ import { getIndex } from "./store-index.js";
20
+ import { getContent } from "./content-cache.js";
21
+ import { resolve } from "node:path";
22
+ import { existsSync, readFileSync } from "node:fs";
23
+ /** BM25 参数 */
24
+ const K1 = 1.5;
25
+ const B = 0.75;
26
+ /** DF 降噪阈值:出现超过此比例的 term 视为停用词 */
27
+ const DF_NOISE_THRESHOLD = 0.8;
28
+ /**
29
+ * 将文件路径转换为层级前缀(与语义搜索 embedText 对齐)
30
+ * @example "工作/AMI/更新/10.18.md" → "[工作 > AMI > 更新 > 10.18]"
31
+ */
32
+ function pathPrefix(relPath) {
33
+ return "[" + relPath
34
+ .replace(/\\/g, "/")
35
+ .replace(/\//g, " > ")
36
+ .replace(/\.md$/i, "")
37
+ + "]";
38
+ }
39
+ /**
40
+ * 获取文档的完整分词结果(含路径前缀)
41
+ * 统计构建和搜索都通过此函数,确保 token 对齐。
42
+ */
43
+ export function getDocTokens(entry) {
44
+ const raw = getDocContent(entry);
45
+ if (!raw)
46
+ return null;
47
+ const fullText = pathPrefix(entry.relPath) + "\n" + raw;
48
+ return tokenize(fullText);
49
+ }
50
+ /**
51
+ * 遍历所有已索引文件,构建 BM25 统计
52
+ */
53
+ export function buildBm25Stats() {
54
+ const idx = getIndex();
55
+ const entries = Object.values(idx);
56
+ if (entries.length === 0) {
57
+ return { N: 0, avgdl: 0, df: {} };
58
+ }
59
+ const df = new Map(); // term → 出现该 term 的 doc 数
60
+ let totalLength = 0; // 所有文档的 token 总数
61
+ let docCount = 0; // 成功分词的文档数
62
+ for (const entry of entries) {
63
+ const tokens = getDocTokens(entry); // 含路径前缀
64
+ if (!tokens)
65
+ continue;
66
+ totalLength += tokens.length;
67
+ docCount++;
68
+ // 每篇文档的 term 只记一次(DF 计数)
69
+ const seen = new Set();
70
+ for (const tok of tokens) {
71
+ if (!seen.has(tok)) {
72
+ seen.add(tok);
73
+ df.set(tok, (df.get(tok) ?? 0) + 1);
74
+ }
75
+ }
76
+ }
77
+ // 反向降噪:删除出现在 ≥80% 文档中的 term(停用词过滤)
78
+ if (docCount > 0) {
79
+ const threshold = docCount * DF_NOISE_THRESHOLD;
80
+ for (const [term, count] of df) {
81
+ if (count >= threshold)
82
+ df.delete(term);
83
+ }
84
+ }
85
+ const dfObj = {};
86
+ for (const [term, count] of df) {
87
+ dfObj[term] = count;
88
+ }
89
+ return {
90
+ N: docCount,
91
+ avgdl: docCount > 0 ? totalLength / docCount : 0,
92
+ df: dfObj,
93
+ };
94
+ }
95
+ /**
96
+ * IDF 计算 (BM25 标准公式)
97
+ */
98
+ export function idf(term, stats) {
99
+ const df = stats.df[term] ?? 0;
100
+ if (df === 0)
101
+ return 0;
102
+ // BM25 standard IDF: ln((N - df + 0.5) / (df + 0.5) + 1)
103
+ return Math.log((stats.N - df + 0.5) / (df + 0.5) + 1);
104
+ }
105
+ /**
106
+ * 计算一篇文档对查询的 BM25 分数
107
+ *
108
+ * @param queryTokens 查询分词结果
109
+ * @param docTokens 文档分词结果
110
+ * @param stats 全局 BM25 统计
111
+ * @returns BM25 score(未缩放)
112
+ */
113
+ export function bm25Score(queryTokens, docTokens, stats) {
114
+ if (stats.N === 0 || stats.avgdl === 0)
115
+ return 0;
116
+ const dl = docTokens.length; // 文档长度 (token 数)
117
+ // 统计文档中每个 term 的频率
118
+ const termFreq = new Map();
119
+ for (const tok of docTokens) {
120
+ termFreq.set(tok, (termFreq.get(tok) ?? 0) + 1);
121
+ }
122
+ let score = 0;
123
+ for (const qt of queryTokens) {
124
+ const tf = termFreq.get(qt) ?? 0;
125
+ if (tf === 0)
126
+ continue;
127
+ const idfVal = idf(qt, stats);
128
+ if (idfVal === 0)
129
+ continue;
130
+ // BM25 term score
131
+ const numerator = tf * (K1 + 1);
132
+ const denominator = tf + K1 * (1 - B + B * (dl / stats.avgdl));
133
+ score += idfVal * (numerator / denominator);
134
+ }
135
+ return score;
136
+ }
137
+ /**
138
+ * 获取文档文本内容
139
+ */
140
+ function getDocContent(entry) {
141
+ let content = getContent(entry.relPath);
142
+ if (content)
143
+ return content;
144
+ // Fallback: 从磁盘读取
145
+ const fullPath = resolve(entry.sourceDir, entry.relPath);
146
+ if (!existsSync(fullPath))
147
+ return null;
148
+ try {
149
+ return readFileSync(fullPath, "utf-8");
150
+ }
151
+ catch {
152
+ return null;
153
+ }
154
+ }
155
+ //# sourceMappingURL=bm25.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bm25.js","sourceRoot":"","sources":["../../src/lib/bm25.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { scanDir } from "./indexer-scan.js";
2
2
  export { extractChunks, generateEmbeddings, embedSingleFile } from "./indexer-embed.js";
3
3
  export { getRawChunks, storeCompiledChunks, storeFileSegments, storeFileLLMVector } from "./indexer-compile.js";
4
+ export { buildBm25Stats } from "./bm25.js";
4
5
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -4,4 +4,5 @@
4
4
  export { scanDir } from "./indexer-scan.js";
5
5
  export { extractChunks, generateEmbeddings, embedSingleFile } from "./indexer-embed.js";
6
6
  export { getRawChunks, storeCompiledChunks, storeFileSegments, storeFileLLMVector } from "./indexer-compile.js";
7
+ export { buildBm25Stats } from "./bm25.js";
7
8
  //# sourceMappingURL=indexer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,mCAAmC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,mCAAmC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { SearchHit } from "./types.js";
2
+ /**
3
+ * BM25 关键词搜索
4
+ */
2
5
  export declare function keywordSearch(query: string): SearchHit[];
3
6
  export declare const search: typeof keywordSearch;
4
7
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAoBvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CA8CxD;AAED,eAAO,MAAM,MAAM,sBAAgB,CAAC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAkDvD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAGxD;AAoHD,eAAO,MAAM,MAAM,sBAAgB,CAAC"}