先给结论:多数情况下对象并没有丢失,而是被工具的默认过滤器排除在结果之外。找回它的第一步不是反复重新查询,而是找到当前生效的过滤条件,确认被隐藏的对象是否不满足其中某一条;确认后再决定是临时关闭过滤、调整条件,还是把该对象补进过滤规则。下面把常见原因和核对方法拆开说明。
同一份文本,在两个人手里出现“有”和“没有”两种结果,通常对应两类完全不同的原因。
解释一:默认过滤器把对象排除了。工具在未手动设置时,往往自带一组初始条件,例如只统计达到某个长度阈值的词、只保留出现次数高于某个值的对象、忽略纯数字或标点组合、按大小写或全半角归一后再合并。只要被查对象不满足其中任意一条,它就不会出现在结果列表里,但底层数据其实还在。
解释二:对象从一开始就没进入统计范围。如果查询时选定的文本范围不对,比如只粘贴了正文却漏掉标题、只统计了可见区域却忽略了折叠内容,或者文本在导入过程中被截断,那么该对象确实不在数据集中,关闭任何过滤器都不会让它出现。
这两种解释对应的动作完全不同:前者只需改条件,后者要改数据来源。先判断属于哪一种,能避免在错误方向上反复折腾。
不需要依赖直觉,下面几个动作能给出可对照的结果。
这套对照的价值在于:它把“我觉得它应该出现”变成“在关闭条件下它是否出现”这样一个可以复核的事实。多个角色对同一结果有分歧时,先统一到这一步,再讨论要不要保留某条过滤规则。
找到原因只是中间步骤,接下来要做一个取舍:是放宽过滤,还是保留过滤、单独查看被排除的对象。
如果目的是完整盘点文本里出现过的所有对象,那么应当放宽或关闭默认过滤,接受结果变长、噪声变多。如果目的是聚焦主要对象,那么保留过滤更合理,同时用“查看被排除项”或单独查询的方式确认被隐藏的对象是什么,而不是让它无声消失。
一个假设的例子:某份文本里有一个只出现一次、长度为两个字符的对象。默认过滤可能设置了最低出现次数或最低长度,于是它被隐藏。关闭过滤后它出现,说明规则在起作用;此时若这份盘点的目标就是穷尽所有对象,就应放宽规则;若目标只是看高频对象,就应保留规则,但把这条规则记下来,避免下次再把它当成“对象不存在”。
这里的关键动作是:把当前生效的过滤条件记录下来,并注明它排除了哪一类对象。这样下一次查询时,任何人看到结果为空,都能先对照条件,而不是重新怀疑数据是否丢失。
当多个角色对“某个对象到底在不在”有不同理解时,与其争论,不如把分歧拆成几条可以逐项核对的条件:
逐条核对后,分歧通常会收敛到某一两条上。此时再决定是统一条件,还是各自保留不同口径并明确标注,都比笼统地说“工具不准”更有用。
不同工具的默认过滤规则并不相同,具体有哪些条件、能否逐条关闭、被排除对象能否单独列出,都需要以你实际使用的工具为准去核对,本文不假定某一款工具的按钮位置或现行功能。另外,某次查询结果为空,只能说明在当前条件和当前文本范围内没有匹配项,不能单独证明对象不存在,也不能单独证明过滤规则设置正确;截断、编码差异、范围选错都可能造成同样的空结果。把条件写清楚,比追求一次“看起来对”的结果更可靠。