diff --git a/src/memory/hybrid.test.ts b/src/memory/hybrid.test.ts index 7105e9ecf2..6e9d8f4264 100644 --- a/src/memory/hybrid.test.ts +++ b/src/memory/hybrid.test.ts @@ -5,6 +5,8 @@ describe("memory hybrid helpers", () => { it("buildFtsQuery tokenizes and AND-joins", () => { expect(buildFtsQuery("hello world")).toBe('"hello" AND "world"'); expect(buildFtsQuery("FOO_bar baz-1")).toBe('"FOO_bar" AND "baz" AND "1"'); + expect(buildFtsQuery("金银价格")).toBe('"金银价格"'); + expect(buildFtsQuery("価格 2026年")).toBe('"価格" AND "2026年"'); expect(buildFtsQuery(" ")).toBeNull(); }); diff --git a/src/memory/hybrid.ts b/src/memory/hybrid.ts index 1dd7c9fdab..cea9f26041 100644 --- a/src/memory/hybrid.ts +++ b/src/memory/hybrid.ts @@ -23,7 +23,7 @@ export type HybridKeywordResult = { export function buildFtsQuery(raw: string): string | null { const tokens = raw - .match(/[A-Za-z0-9_]+/g) + .match(/[\p{L}\p{N}_]+/gu) ?.map((t) => t.trim()) .filter(Boolean) ?? []; if (tokens.length === 0) {