词库管理
词库窗的三栏布局,用户词库(含分库)、临时词库、词频、候选调整的管理与编辑文件,快捷输入格式、常用字与字符分类,以及词库缓存机制
设置工具的「词库」页统一管理用户数据——你打过的字词、手动造的词、调频记录、置顶隐藏规则。所有修改即时生效。
数据域与类别
词库窗分三栏 0.127 新增:
- 左栏选数据域,分「全局」与「输入方案」两组。条目上右键可「打开数据目录」;方案还可删除它的全部用户数据
- 中栏列出这个数据域下的类别。方案的「用户词库」下再分「主词库」与各个分库,其余类别归在「其他」下
- 右栏是所选类别的内容,顶部是标题(如「用户词库 · 主词库」)和这一类的「编辑文件」「导入」「导出」
中栏每个节点右键给出它能做的事,普通类别是「编辑文件」「导入…」「导出…」(这一类支持的那几项)与「打开数据目录」。
全局域有:
- 快捷短语,类别:系统短语与用户短语,见快捷短语
- 快捷输入 0.117 新增
- 字符集 0.121 新增,类别:常用字 0.119 新增(逐字)与字符分类 0.121 新增(整类)。0.127 之前这两处分别叫「字符集分类」与「字符类」
- 输入补全 0.122 新增,类别:邮箱后缀、网址历史与快捷输入历史,见输入补全
全局域与方案无关:快捷短语是一套码到内容的映射,快捷输入格式的调整则按「日期 / 月日 / 年月 / 数字 / 计算」这几个格式类别记账,都不挂在任何方案下。
「输入方案」组里是全部已安装方案,不限于已启用的,也包括自制快符表这类特殊方案——它们各有独立的用户词库与词频记账,与主方案互不干扰。
选择方案后,可管理的数据类别随引擎类型变化:
| 方案类型 | 用户词库 | 临时词库 | 词频 | 候选调整 |
|---|---|---|---|---|
| 码表(含自制快符表等特殊方案) | ✅ | ✅ | ✅ | ✅ |
| 拼音 | ✅ | ✅ | ✅ | ✅ 0.115 新增 |
| 英文 0.114 新增 | ✅ | ✅ 0.125 新增 | ✅ | ✅ |
| 混输 | —— | —— | —— | ✅ |
三条容易困惑的地方:
- 英文在 0.125 之前没有临时词库——临时词库是自动造词的暂存区,英文 0.125 起才有自动造词
- 拼音只能置顶,不能前移 / 后移——
position = 0(第一个)的含义不随候选集变化,而「第 3 位」在词频衰减、模糊音开关或词库变动后指的就是另一条候选了。0.115 之前拼音下三种调位一律禁用,正是出于后者 - 混输只有候选调整——不是功能缺失。混输方案自己不拥有词库,它的用户词库、临时词库与词频都按候选来源记在被引用的码表方案与拼音方案名下,在那两个方案下管理即可。见方案 → 混输
全拼与双拼共用同一个数据域
双拼在词库页被折叠进「拼音」域。导出双拼方案得到的就是整个拼音家族的数据,导入亦然。
候选调整也一样共享,且编码会归一成全拼:双拼敲 hc(小鹤 = hao)置顶的词,切到全拼打 hao 同样生效,反之亦然。规则表里存的是 hao 而不是击键。
删除某个方案的全部用户数据 0.127 新增
左栏方案上右键 →「删除此方案的用户数据…」,确认后删掉这个方案在用户目录 data\<方案>\ 下的全部数据:用户词库、分库、临时词库、词频、候选调整等,方案的个人设置(schema_overrides\<方案>.toml,如扩展词库开关、双拼布局)也恢复默认。方案文件本身不受影响,输入统计也不动。删除不可恢复,需要时先备份。
这一项只在该方案确实有用户数据、且数据不与别的方案共用时出现:
- 拼音家族的数据都记在
pinyin下,装了两个以上拼音类方案(如全拼与双拼)时不能单独删其中一个 - 混输方案自己没有数据,要删请到它引用的码表方案与拼音下操作
- 有文件正在编辑时会被拒绝,先结束编辑
通用操作
- 搜索 —— 输入编码或词条即时过滤,编码支持中段匹配 0.113 新增:搜
ya也能搜到haoya,不必从头打起 - 排序 —— 点击表头按该列排序
- 分页 —— 数据量大时分页浏览
- 导入 / 导出 —— 见导入与导出
- 编辑文件 0.127 新增 —— 用编辑器直接改这一类的数据文件,见下文
- 刷新 —— 左栏底部。重新读取数据文件并刷新列表,在外面改过文件后也用它 0.127 新增
- 删除、清空等破坏性操作均有二次确认
编辑文件 0.127 新增
用户数据都是用户目录 data\ 下的文本文件(见用户数据文件)。右栏顶部的「编辑文件」(或中栏节点右键 →「编辑文件」)用系统默认程序打开当前这一类的文件,并弹出「正在外部编辑」对话框:
- 在编辑器里改完、保存(保持 UTF-8 编码)
- 回到词库窗点「完成并加载」,改动随即生效。按 Esc 或关掉对话框也等同于完成并加载
对话框里还有「打开所在文件夹」与「再次打开文件」。文件里有写坏的行时,加载后对话框改为「文件有问题」并列出原因,可以「再次打开文件」接着改,或先关掉以后再处理。
能这样编辑的有:用户词库(主词库与各分库)、临时词库、词频、候选调整、用户短语、快捷输入、常用字,以及每个字符分类。
- 编辑期间照常打字:新造的词、学到的次数先记着,完成后合并进你改过的文件,不会被覆盖。临时词库与词频里删掉的词,如果编辑期间又用到,会带着新的次数重新出现
- 编辑期间词库窗里的其它操作暂停,直到完成
- 不经这个入口、自己用编辑器打开文件改也可以,改完点左栏底部「刷新」。但编辑器开着旧内容时程序可能已经写回了新学到的词,这时再保存会把它们盖掉——所以推荐走「编辑文件」
拼音编码带音节空格 0.113 新增
拼音词库的编码在列表、搜索回显与「出码」按钮里一律显示成带音节空格的形式(ni hao 而不是 nihao),让词库真实的音节结构可见。存储侧不变,仍是扁平码。
由此多出一个用法:在编码框里手打空格即显式声明音节切分,优先于程序的自动推导——自定义切分或生僻音的词,打个空格就能把边界给准。搜索时带不带空格都能匹配。
直接打开到指定方案 0.113 新增
从功能主菜单选「词库管理…」时,直接落在你当前正在用的那套方案上,不再停在「快捷短语」让你再选一次。
要跳得更准,可以用命令行参数指定方案与数据类型:
wind_setting.exe --page dict --schema wubi86 --type shadow也可以挂成短语,用编码一键直达:
cods = $CC("五笔候选调整", setting.open("dict", "--schema=wubi86 --type=shadow"))取值与降级规则见设置工具的命令行参数。
用户词库
收录你手动添加的词,以及自动造词转正后的词条。
手动添加 —— 输入词条后可点「出码」按钮自动生成编码,也可手动填写;支持设置权重。此外可编辑、删除、清空。词条长度上限 10000 字、编码长度上限 128 字 0.122 新增,超出会被拒绝而不是截断。
也可以在输入时直接加词:
Ctrl + =就地加词(从当前组合造词)Ctrl + Shift + =打开独立加词小窗;窗内按Enter直接提交 0.121 新增,与快捷加词对齐
英文方案的用户词库 0.114 新增
英文方案的用户词库收专有名词、缩写、项目内部词汇。编码就是单词本身的小写——英文词库以小写码做大小写不敏感的前缀匹配,加 WindInput 后打 wind 就能出。
带空格的(thank you)、非 ASCII 的(café)、一个字母都没有的(123)三类词加不进去,加词会提示无法计算编码。详见方案 → 英文。
用户分库 0.127 新增
用户词库可以再分成多个分库:成语、行业词、某个项目的术语各放一个,逐个开关。码表、拼音、英文方案都有。
中栏「用户词库」下列着「主词库」和各个分库,后面是条目数。
- 主词库就是原来的用户词库,造的词、加的词、临时词库转正的词都进这里,总是启用
- 分库前面有勾选框,取消勾选即停用:这个分库的词不再出现在候选里,文件和词条都还在,仍可点开查看,勾回来就恢复。新建或放进来的分库默认启用
新建与导入:中栏栏顶的「+」,或「用户词库」上右键:
| 菜单项 | 说明 |
|---|---|
| 新建分库… | 起个名字,得到一个空分库 |
| 从文件导入为分库… | 选一个词库文件(Rime、TSV、WindDict 或纯词列表),整份导成一个新分库,名字默认取文件名。格式选「自动识别」或「纯词列表(自动出码)」,纯词列表按本方案出码、可指定权重,见纯词列表(自动出码)。文件须是 UTF-8 |
| 打开分库目录 | 打开分库所在的文件夹 |
分库名最多 64 个字,可以用中文和空格,不能含 / \ : * ? " < > |,首尾不能有空格或 .。
分库上右键:「启用 / 停用」「编辑文件」「重命名…」「打开分库目录」「删除分库…」。删除会删掉分库文件,不能恢复。
选中一个分库时,右栏和主词库一样可以添加、编辑、删除、清空词条,没有导入导出——导入就是上面的「从文件导入为分库」,导出直接拷走分库文件即可。
在词库之间移动词条:勾选若干行后点工具栏的「移动到…」,或某一行右键 →「移动到」,选目标——主词库或另一个分库(停用的分库会标「(已停用)」)。主词库与分库之间、分库与分库之间都能移。
文件位置:分库是用户目录下 data\<方案>\dicts\ 里的 *.dict.yaml,一个文件一个分库(不看子目录),格式与主词库的 user.dict.yaml 相同(列 text, code, weight,权重可省)。自己拷一份词库文件进去,点左栏底部「刷新」就会出现。开关记在同级的 data\<方案>\dicts.toml 里,按方案记关掉的分库:
[schemas.pinyin]
off = ["行业词"]全拼与双拼共用 data\pinyin\dicts\ 里的分库;dicts.toml 按方案分别记开关,在词库窗里勾选时拼音家族的方案一起切。
分库里的词与主词库的词一样参与候选排序:码表方案下与用户词同档、排在系统词库之前;拼音方案下按权重与系统词一起排。分库随整机备份按文件原样进包。
临时词库
自动造词的暂存区。 开启自动造词(码表)或自动学习(拼音)后,连续选字产生的新词组会先落在这里,记录使用次数——立刻可用,但尚未进入正式用户词库。
| 操作 | 说明 |
|---|---|
| 转正 | 把该临时词条转入正式用户词库 |
| 全部转正 | 一键转正当前全部临时词条 |
| 删除 / 清空 | 移除条目 |
用满「转入用户词库次数」设定的次数后也会自动转正。
词频
词频记录(count 使用次数与 last_used 最近使用时间)按「方案 + 编码 + 文本」存储。在这里可以删除单条记录(该词回落原始排序)或清空整个列表。
只想攒一份使用统计、不想让候选顺序变化,开方案页的「仅记录次数」,见只记次数、不调序;攒下的记录可经导入与导出带出后自行分析。
调频要不要开、按什么策略——那些是每种引擎的全局配置,在对应的四台引擎的配置里。排序原理与三种策略的取舍见词频与候选排序。
记账用哪个编码:码表与拼音相反 (0.114)
这里的「编码」两类方案取法不同,是刻意的:
- 码表 —— 记你实际敲的输入码。
d/de/def是三个独立码位,各自的首选独立调整。这也是简码位首选保护按码长分档成立的前提 - 拼音 / 英文 —— 记候选自身的编码。候选码恒是这个词完整的读音或拼写,打
d选了「东西」之后打dongxi也该受益;而且拼音下不能用输入缓冲——双拼的siyr与候选码siyuan、带分隔符的xi'an与xian都对不上
0.113 及以前码表侧也走候选码,导致在 de 下选中「有」(它带的是全码 def)后,打 d 时它也跟着前移。0.114 已按候选来源分流修正。
候选调整
控制特定候选的显示行为,不修改原始词库数据,规则以一层 shadow 规则存在用户目录的 data\<方案>\shadow.dict.yaml。
| 操作 | 说明 |
|---|---|
| 添加 | 指定编码与词条,类型选固定位置(并填目标位置)或隐藏 |
| 编辑 | 修改已有规则 |
| 撤销 | 取消调整规则,恢复该候选的原始显示 |
| 清空 | 移除全部规则 |
日常使用中直接右键候选词选「置顶 / 前移 / 后移 / 删除 / 恢复默认」,或用快捷键(默认 Ctrl + 数字 置顶、Ctrl + Shift + 数字 删除),产生的规则同样在这里管理。
拼音方案下「前移 / 后移」是灰的,只有置顶可用,原因见上文的类型对照表。删除与恢复默认不受限制。
置顶是硬规则,比调频强得多
候选调整排在整条候选装配流水线的最后,晚于排序、去重、过滤与词频重排——它能翻过拼音的匹配层级闸门,而调频翻不过。
这也意味着置顶不会自己失效:它不随使用衰减,也不会被更常用的词挤下去。想撤销只能在本页删除规则,或右键那条候选选「恢复默认」(得先把它打出来)。给一个词置顶前,值得想一下是不是真的每次打这个编码都要它排第一。
置顶只作用于你当时敲的那个编码
在 hao 下置顶「好」,只影响打 hao 的时候;打 hao1、h 或整句里出现同一个词都不受影响——每个编码是独立的码位。
模糊音也不跨编码:开了 zh = z 时打 zang 置顶的词,打 zhang 不会跟着置顶,因为规则记的是你实际敲的那串。
拼音下想让某个词稳定靠前,调权重仍然不管用
拼音候选权重是百万级,单纯把用户词的 weight 调到几千不足以压过常用拼音词。要么用上面的置顶,要么给它一个不易与自然词碰撞的精确编码(例如 4 字母的 cobd),让它只在该精确编码下出现。
快捷输入格式 0.117 新增
「快捷输入」域列出快捷输入的全部候选格式(日期、月日、年月、数字、计算五类,二十余条),可调序、停用、单条或整表恢复默认,也能把改动导入导出成一份 TOML。
与候选调整的分别在作用域:候选调整管的是「某个编码下的某个词」,这里管的是「某一类输入的某种写法」——把农历排到最前,以后所有日期都把农历排最前。
三点与别的类型不同:
- 增删只对自己的条目——可以加自己的格式、改它的模板、删掉它;出厂条目的模板不可改,只能停用(理由见那一节)。
kind是解析器白名单,不能自创 - 停用不是删除——停用的行留在列表里、原地灰掉,随时开回来;这也是为什么它比右键菜单管得更全(右键点不到已经隐藏的格式)
- 每行带示例——用今天的日期现算,与你实际打出来的一致
常用字 0.119 新增
「常用字」域管的是哪些字算常用。这张表决定候选检索范围在「智能」和「常用字」两档下放行谁——把一个字设成生僻,它在这两档里就不再出现在候选中,切到「全部字符」才回来。
出厂带一份默认字表(八千多个汉字)。这个域列的是默认字表 + 你改过的字:默认字表之外的字符(注音、假名、间架结构符 ⿰ 之类)本来就一律放行,只有被你设成生僻之后才会出现在列表里。
| 列 | 说明 |
|---|---|
| 字符 | 那个字本身 |
| 默认 | 默认字表原本的判定 |
| 当前 | 你设定的判定:常用 / 生僻 |
| 所属类 0.121 新增 | 这个字的判定归哪个字符分类管,如「注音符号」「Emoji 表情」。0.120 的「类型」列(Unicode 块名)并入此列——两列内容高度相似(「表情符号」对「Emoji 表情」),分不清是必然的 |
「默认」与「当前」并排是有用的:只看「当前」的话,一行「的 · 生僻」根本想不起来自己当初改的是什么。
右上角的「只看已修改」把没碰过的行滤掉,改过哪些字一眼就能看全。
改一个字
- 在这个列表里右键那一行,选「设为常用」或「设为生僻」
- 或者日常打字时右键候选词直接调,不用专门打开设置
改过的行可以「恢复此条默认」,回到出厂字表的判定。没碰过的行这一项是灰的——点了也什么都不会发生。
- 任何字符都能设 0.120 新增:不限于汉字,字根、间架结构符、注音符号、假名都可以。 emoji、国旗、带键帽的符号这类由多个码位拼成的字符,也会被当成一个整体登记,不会被拆开。
整类批量 0.120 新增
一个一个设太慢的时候:右键任意一行,菜单里有「将『注音符号』全部设为常用 / 全部设为生僻」——类型从这一行推导,你不必先知道它叫什么、码位区间在哪。
在候选里看见 ㄅ 觉得烦,心里想的本来就是「这类东西别出来」,而不是「3100 到 312F 别出来」。
两个方向都给,不是按当前行取反。因为默认字表之外的字符能进列表的前提就是已被设为生僻,取反的话菜单里永远只剩「全部设为常用」,那一类就再也关不掉了。
确认前会先告诉你这一类有多少个字、涉及多少条词条——扫的是你当前启用的全部方案里实际出现过的字,不是整个 Unicode 区间。
汉字块不提供整类操作
对着一行「我」点「将『基本汉字』全部设为生僻」,一次误点就是七千多条覆盖,整张常用字表当场作废。所以汉字那几个块的整类项是灰的——它们本就有默认字表逐字管着,要调也该逐字调。
字符分类 0.121 新增
「常用字」是逐字改判定,「字符分类」是整类改。两者是同一件事的两层:
| 字符分类 | 常用字 | |
|---|---|---|
| 作用面 | 整个类,不问词库里有没有这个字 | 一个字 |
| 跟随出厂更新 | ✅ 出厂给这个类补了成员,一并生效 | ⛔ 只有你改的当时那些字 |
| 优先级 | 低 | 高,压住前者 |
最后一行是「配了没反应」最常见的来源:你把某个类整体设成生僻,却发现有几个字照样出——那些字被逐条覆盖压着。所以列表里有一列专门显示每个类被多少条逐条覆盖压着。
出厂带几十个类:50 个 Unicode 区块 + Emoji 表情 + 常用汉字,你也可以自建。不分页,直接搜。
| 列 | 说明 |
|---|---|
| 类别 | 类名 |
| 优先 0.122 新增 | 仲裁顺序,数越小越先。出厂类取 10 / 20 / 100 / 900 / 1000;显示为「—」表示没设,不是 0(0 是合法且最高的优先级) |
| 默认 | 本类的常用性表态:常用 / 生僻 / 跟随出厂(不表态) |
| 范围 / 标记 | 这个类覆盖哪些码位,以及它是否免于词频统计、是否纳入生僻字模式 |
| 覆盖 | 有多少条逐字覆盖压在这个类上 |
一个字被几个类同时覆盖时:优先级最小、且已表态的那个类赢——「优先 5 但没表态」让位给「优先 10 且判生僻」。免词频与纳入生僻字模式这两个标记是并集,任一类勾了就成立,不看优先级。
每行右侧的「操作…」与右键菜单里有「默认判为常用」「默认判为生僻」「清除默认判定」(让本类不表态、跟着自带配置走)三项,以及「编辑文件」;自建的类还有「删除此分类」。
新建与编辑文件 0.127 新增
类的成员与码位范围不在界面里逐条编辑——填码位段这类事在表格里做不完,交给直接编辑文件。0.127 之前的「外部编辑」对话框(导出 → 编辑 → 试算 → 加载)已拆成下面两步。
新建:「字符分类」右栏工具栏的「+ 添加」,填四项:
| 项 | 说明 |
|---|---|
| 文件名 | 类的唯一标识,保存为 charsets\<文件名>.yaml,如 my_symbols。不能含 / \ . : * ? " < > |,最多 64 字节 |
| 显示名 | 列表里显示的名字,留空同文件名 |
| 默认判定 | 不表态 / 常用 / 生僻 |
| 优先级 | 数字小的先判,留空为 5,排在出厂类前面 |
新建的是空分类,列表里多一行。成员与码位范围接着用这一行的「编辑文件」添加。
编辑:某一行的「操作…」或右键 →「编辑文件」,用系统默认程序打开这个类的文件,改完点「完成并加载」,流程同编辑文件。文件里有问题(写坏了、key 与文件名对不上、改了出厂类的范围)时,加载后对话框会列出原因。
文件里只记你的改动
文件在用户目录的 data\charsets\<key>.yaml,只记你对这个类的改动,出厂内容不在文件里:头部写哪些字段就改哪些,没写的沿用出厂;正文里一行一个字符是追加,前面加 - 是从本类移除。所以出厂给这个类补了成员,照样跟着生效。
不经「编辑文件」直接用文本编辑器改也可以,改完点左栏底部「刷新」。注意是 data\ 下的那个:用户目录顶层的 charsets\ 是 0.121 之前的旧落点,放进去的文件不会被读取。
不经「+ 添加」、自己手写文件建的类,不写优先级时按 100 算,压不过优先级更小的出厂类(如常用汉字的 10);要让它说了算,给它填一个更小的数。
出厂类不能删,范围也只读——但默认判定、免词频、纳入生僻字模式这几个属性照样改得动。
输入补全 0.122 新增
邮箱输入与网址历史补全等功能学到的数据在这里查看与清空,每类一个类别:
| 类别 | 记的是什么 | 跟随哪个开关 |
|---|---|---|
| 邮箱后缀 | 你用过的邮箱后缀(@ 之后的部分,不含用户名) | 邮箱输入模式的总开关 |
| 网址历史 | 你上屏过的网址原文 | 「记住输入过的网址」,与网址模式本身的开关分开 |
| 快捷输入历史 0.125 新增 | 你在快捷输入里上屏过的文本,见快捷输入历史 | 快捷候选来源里的「快捷输入历史」 |
这些表都只提供查看、搜索、逐条删除、清空——它们是学习数据,不是词库,没有编辑与导入导出(单独分发一份「我打过哪些网址」没有使用场景)。搜索按包含匹配:搜 example 找得出 www.example.com。
清空按钮各管各的,清空网址历史不会波及邮箱后缀。这些数据都已纳入整机备份,换机器不必重新攒。
词库统计 0.128 新增
看一个方案的系统词库(方案自带的码表或拼音词库,不是上面的用户词库)有多少词、怎么分布、重码多少。两个入口打开的是同一个对话框:中栏最后一行「词库统计」,或左栏方案上右键「词库统计…」。
- 概览:词条数,去重后的单字数与词组数,二字、三字、四字、五字及以上的词组条目数,「其他」,以及这个方案的用户词与临时词条数
- 各词库:主库、扩展库与细胞库、用户分库各占一行;停用的库只列名字、不计数
- 码表方案另有:单字与词组按码长的分布;一级、二级、三级简码各有多少字;重码组数、涉及条目、最大重码数(合计一行、主库单独一行;点「查看 Top」列出最大的 50 组,点编码复制,勾「只看单字」换成按单字全码分组的 Top);只看单字全码时的重码
- 拼音方案另有:多音字、用到的音节数、零权重条目,以及同一个码下词最多的编码(拼音同音是常态,仅供参考)
- 高级统计(点开):通规一级、一二级与全表在本方案里各有多少字没收(点数字看是哪些字);码表还给出字集内的静态重码(按单字全码分组的非首选字数)、按字频加权的动态选重率与平均码长
混输方案没有自己的系统词库,对话框把主码表与拼音两个成员并排列出。
口径:
- 条目是一条(编码, 文字):一个字有简码又有全码,算两条。各库分行时按库内原样计,合计按(编码, 文字)跨库去重
- 单字 / 词组按字数分;含 emoji、符号或字母的条目计入「其他」,不进字数分档
- 重码只算含汉字的条目:纯 emoji 和符号条目既不计入重码组,也不占同码的位置(「T恤」「卡拉OK」这类含汉字的词照算)
- 全码是一个字最长的码(不超过方案的最大码长),比它短的是简码,几码就是几级简码;同一个字有多个最长码时,取排序最靠前的那个
- 首选按词库静态排序判定(权重,同权看库的先后与词库里的顺序;方案设了
base_sort = "natural"时只看顺序),没有计入出简让全、单字模式、字符集过滤和调频,所以和实际打字时看到的候选可能不同 - 字频取随包白霜拼音字表(
8105与41448两张字表,同一个字各读音的权重相加)。删掉了拼音词库或换成别的词库时,选重率与加权码长不显示 - 动态选重率 = 最优码不在首选的字的字频之和 ÷ 字集内已收字的字频之和;最优码取序位最靠前、同序位码更短的那个
结果按词库文件缓存,词库没变时再打开是即时的;「重新统计」会绕过缓存重扫一遍。某个词库还没编译过时,首次统计要先编译它,会多等一会儿。
词库缓存与重建
首次加载 .dict.yaml 时会解析成二进制缓存(.wdat),存放在 %LOCALAPPDATA%\WindInput\cache,之后直接内存映射读取,省掉重复解析。
缓存按内容指纹校验,不看修改时间。以下任一情况会自动重建,用户无需手动干预:
- 词库文件内容变化(哪怕只改一个字节)
- 缓存文件或其指纹文件缺失、损坏
- 拼音词库的
import_tables子表增删或改动 - 程序升级带来了解析语义变更
- 词库的
type在english与其他类型之间切换
因为指纹基于内容而非时间戳,用 scp 部署、从版本控制签出等刷新 mtime 的操作不会触发无谓的重建;把文件改回原样也能重新命中旧缓存。
改了 .dict.yaml 之后不需要做任何事
下次加载该词库时自动重建。改方案文件(.schema.toml)同样不需要——base_order、default_weight、base_sort 作用在查询期的排序器上,根本不进缓存。
需要强制全量重建时(例如怀疑缓存异常),用命令行:
wind_input schema rebuild它会清空整个缓存目录。输出里若提示「M 个仍被占用」,是文件还处于内存映射中,再执行一次即可清掉,不影响正确性。详见命令行工具。
只投放 .wdat 而无 .dict.yaml 的词库无法重建
词库也可以只分发编译好的 .wdat 而不带 yaml 源。这种词库直接映射加载、完全绕过指纹校验;一旦加载失败会明确报错,此时只能更换词库文件,改 yaml 没有意义(根本没有 yaml)。
删除操作不可恢复
删除与清空操作不可撤销。重要数据建议提前备份。
对这篇文档有疑问,或发现内容有误?
欢迎到文档仓库提 issue,写明问题时附上本页链接即可。