Skip to content
English

结构查询键与文本公共前缀 ​

用于稳定比较与用量分析的小型纯函数,不是授权、散列或语义去重系统。

commonPrefixLength 比较字符串的 JS UTF-16 前缀长度,用于稳定前缀分析;它不是 token 数、字符字素数或缓存命中承诺。

retrievalQueryKey 对 JSON 可序列化的对象键排序,再保留数组顺序序列化,适合受控查询结构比较。它不是加密 hash、身份签名或适用于任意 JS 对象的唯一键;Date/Map/函数/循环对象等不属于示例的受控 JSON 查询输入。

由简到繁的同业务示例 ​

比较两个真实输入的稳定前缀 ​

入门 · Node.js

ts
import { commonPrefixLength } from '@jangts/agent-core';
console.log(commonPrefixLength('服务:正常', '服务:繁忙')); // 3
js
import { commonPrefixLength } from '@jangts/agent-core';
console.log(commonPrefixLength('服务:正常', '服务:繁忙')); // 3

对象键顺序不同,查询语义保持同一结构 ​

配置 · Node.js

ts
import { retrievalQueryKey } from '@jangts/agent-core';
const first = retrievalQueryKey({ query: '服务状态', filters: { region: 'cn', active: true } });
const second = retrievalQueryKey({ filters: { active: true, region: 'cn' }, query: '服务状态' });
console.log(first === second); // true
console.log(retrievalQueryKey({ ids: ['a', 'b'] }) === retrievalQueryKey({ ids: ['b', 'a'] })); // false
js
import { retrievalQueryKey } from '@jangts/agent-core';
const first = retrievalQueryKey({ query: '服务状态', filters: { region: 'cn', active: true } });
const second = retrievalQueryKey({ filters: { active: true, region: 'cn' }, query: '服务状态' });
console.log(first === second); // true
console.log(retrievalQueryKey({ ids: ['a', 'b'] }) === retrievalQueryKey({ ids: ['b', 'a'] })); // false

策略与实现 ​

接口参考、使用示例与开发指南。