超级辅筛 (Super Lookup):输入后筛选的降维打击
只需一个引导符
`,瞬间从茫茫字海中狙击目标。它不仅能过滤候选词,还能在不破坏整句结构的前提下,精准“跨位爆破”修改特定错字。
万象的超级辅筛(输入后辅助筛选)是整个输入法中最具魔力的功能之一。无论你是想寻找某个偏旁的单字,还是想强行扭转系统生成的错误长句,一切操作都无缝工作在同一个引导符 `(Tab 键上方)之后,无需任何复杂的模式切换!
Patch 核心配置与数据源控制
超级辅筛的强大不仅在于算法,更在于多数据源的统筹。在你的自定义方案文件或 wanxiang.custom.yaml 中,可以通过 wanxiang_lookup 节点来定义它的行为:
配置解析:数据源优先级 (data_source)
-
aux: 代表从主词库的注释中提取辅助码(效率最高,支持 Pro 版高级特性,也只有pro携带了词库中辅助码)。 -
db: 代表从外挂的反查数据库中提取(如wanxiang_reverse.dict.yaml,多用于单字笔画/拆字反查/词组筛选)。 -
(注意:为了规避性能灾难与复杂度,词组匹配刻意不支持笔画反查)
在使用前先来到配置这里思考一下“我要的是什么”
配置示例:
patch:
wanxiang_lookup:
tags: [ abc, add_user_dict ] # 辅筛生效的输入法状态标签,一般是默认即可
key: "`" # 引导符 (强烈建议保持默认 `,避免与分词符 ' 冲突,在分号无他用的前提下可以将分号用于这里也是不错的选择)
lookup: [ wanxiang_reverse ] # 调用的反查数据库名称,很多人没意识到这个配置的深层意义,你完全可以通过一个小型方案将辅助码编译成bin,或者将bin直接拷贝到build,在这里新增一个名称即可实现base版本用辅助码筛选的设计。这里提到的辅助码是狭义的,因为辅助码更具设计感,重码低,有人掌握了这一个两码体系可能就不需要两分、笔画这些东西了。而默认携带的数据库,内部包含了两分、多分、笔画,实则是一种冗余设计,这些何尝不能称为辅助码呢,实际上也能,由于不够聚焦,因此我们把这类当作一种低阶的辅助码。总结:db 辅助码就是来源于外挂的滤镜数据库中的辅助码,他可以根据这个参数定义数据库。
enable_tone: true #启用声调反查,就是在引导符号后面输入数字7890来参与到反查中
# 【核心配置】数据源调取优先级:排在前面的优先读取!
data_source: [ aux, db ] # 优先读取词库自带辅码(aux),查不到再查数据库(db)
enable_direct: true #启用无引导的直接辅助查询,这个是专属于base版本的功能,请看后面具体的介绍。
关于 wanxiang_reverse.custom
反查和笔画的转写规则(如全拼转五笔画)定义在你的根目录 wanxiang_reverse.custom.yaml 中。如果你习惯了特定的笔画编码转写,打开该文件根据注释微调即可,默认词库携带的是一种大写编码,通过xlit转换可以将横竖撇捺点转换成自己的习惯按键。
!!! 因此不要生搬硬套弄清楚你自己的配置是啥,后面讲到笔画筛选才不会对着例子:我咋打不出来!!!
绝技一:候选过滤 (Base & Pro 通用)
如果输入的内容没有触发整句修改,引擎会极其顺滑地自动降级为候选词过滤模式。
1. 单字过滤:支持拆字、笔画全聚合
输入拼音后,按下 ` 即可输入部首读音或笔画:
-
两分/多分拆字:输入
ni-> 按`-> 输入re(亻尔) 或rfer,精准筛出“你”。 -
五笔画过滤:输入
ni-> 按`-> 输入pspzhpd(撇竖撇折横撇点),也能筛出“你”。
辅筛:输入部首首字母精准定位
辅筛:输入不同的筛选不同
2. 词组过滤:模糊跳跃匹配
这是万象的黑科技。对于词组的辅助码筛选,你不需要按顺序打全,甚至可以随意跳字匹配!
假设你要打“老实说”,它的完整辅码序列是:tb (老) + gt (实) + yd (说) = tbgtyd。(来自db数据库而非aux)
在输入拼音后按下 `,你可以这么玩:
-
精准打击:输入
gt-> 筛出包含“实”的词。 -
跨字组合:输入
tg-> 匹配t(老) 和g(实)。 -
极致跳跃:输入
bd-> 匹配b(老 的尾码) 和d(说 的尾码)。
(技术解密:引擎底层会将你的输入转化为类似 .*t.*b.*g.*t.*y.*d.* 的非连续正则逻辑(并非真的正则匹配,只是为了好理解),只要顺序没反,怎么跳都能命中!)
3. 双辅助数据源融合排序
当同时启用 aux 与 db 两种辅助数据源时,超级辅筛会在“过滤”之后,对剩余候选进行二次排序。
原版逻辑:
候选词 → aux/db匹配 → 保留
只判断是否匹配,不区分:
- 辅助码来源;
- 单字集中命中还是跨字命中。
因此可能出现 aux 精准命中和 db 跨字命中被视为同等级的问题。
新版排序规则:
第一优先级:辅助码来源
第二优先级:辅助码命中集中程度
辅助码来源
| 来源 | 特点 | 优先级 |
|---|---|---|
| aux | 来自词库自带辅助码,针对词条设计,特征更集中 | 高 |
| db | 来自反查数据库,包含两分、拆字、笔画等,覆盖更广但更宽泛 | 低 |
排序依据:
data_source: [ aux, db ]
排在前面的数据源优先。
例如输入:
bd
候选:
| 候选 | 来源 | 匹配方式 |
|---|---|---|
| 老实说 | aux | 实 = bd,两个辅助码完整落在同一个字 |
| 老是说/老实说 | db | 老 = b(下面),说 = d(兑),通过拆字结构跨字命中 |
两者都能匹配,但新版认为:
aux 单字完整命中 > db 跨字匹配
因此优先展示 aux 结果。
多辅助码输入
当输入多个辅助码时,不简单判断“单字/跨字”,而根据辅助码覆盖程度排序:
| 匹配情况 | 优先级 |
|---|---|
| 多个辅助码完整对应目标字 | 最高 |
| 部分辅助码集中命中单字,部分跨字匹配 | 中 |
| 全部依靠跨字跳跃匹配 | 最低 |
最终排序,同一候选长度内:
aux 单字集中命中
aux 跨字匹配
db 单字集中命中
db 跨字匹配
这样超级辅筛从原来的:
“找到能匹配的候选”
升级为:
“找到最符合用户辅助码意图的候选”。
同时不改变原有词长优先规则,只调整同长度候选之间的顺序。
4. 声调分离提取 (乱序声调注入)
为了极致的盲打流畅度,数字声调(7,8,9,0)可以随意插在辅筛字母的任何位置!
引擎会聪明地将数字剥离出来用于声调过滤,将剩下的字母送去执行正则匹配。
-
单字过滤:
ni->`r9e或`rf9er(声调 9 随意乱入均有效)。 -
词组过滤:
nihk->`n9zr9e(按字数顺序依次生效)。
5. 完了吗?base版本直接词辅显神通
在输入中,输入完整两个字的编码后,可以通过直接输入这两个字的关联辅助码来筛选前置想要的词汇,默认关闭,类似手心的直接辅助选项,但是只提供开关,不提供对某个字前一个字还是后一个字辅助的设置,因为实践中往往是any,支持任意字的单码、双码,以及两个字首码组成的双码。默认数据同样是自带的两分,也就是偏旁用法,无需记忆。相较于需要引导,这种无引导的局部快速筛选正中两字词组较多的痛点,突破限制,提升效率。

m是益字的“皿”部件的声母,因此多输入一个m两个字的就会调到前面,三个字的就会跑到后面,当输入第二个辅助码的时候可能与三个字重码,要优先保证三个字的呈现,能够匹配的两个字跟到三个字的后面。
为什么默认关闭: 很多人输入两个字、三个字词条的时候依赖自动补全,如:ni h 出:你好 yi ug m 出:已声明,因此这是一种互斥的习惯,因为这种习惯原本就有,因此单码前置这种经过设计的习惯就只能默认关闭。
绝技二:首句定点改字 (Pro 专属狙击模式)
当系统自动生成的长句中出现了个别错字,传统做法是退格删除、重新选词,极其破坏输入心流。万象 Pro 版支持直接提取词库自带的辅助码,在句末进行“定点狙击”。
实战演示:跨位精准改字
场景 A:单字纠正与声调锁定
-
预期:有没有啥问题
-
实际输出:又没有啥问题 (错把“有”打成了“又”)
-
狙击操作:按下引导符
`,直接输入“有”的辅助码uo。 -
冲突解决:发现系统把“没”也改了(因为“眉”也是 uo)。此时只需追加输入声调
9(变成`uo9),系统瞬间锁定目标,完美输出:有没有啥问题!
场景 B:多字连环纠正
-
预期:真的是咯
-
实际输出:真的失落
-
狙击操作:直接在句末输入
`or0kk(or0定位“是”,kk定位“咯”),错字瞬间被双双纠正!
有的朋友思考流是: 作者用的啥---我也用啥---按例子输入---失败为什么不行---开始内耗
再次提示,按你的辅助码来对应尝试,不要直接按我的例子输入,也不要关心我用的啥。