你搜一个词,没有结果。
而你的第一反应,是"它没有"。
而这个判断,跳了两步"。
因为"搜不到"这件事,其实是"三道筛"。
第一道:"范围"。
第二道:"类型"。
第三道:"有没有同步下来"。
所以那句可以这样记":"搜不到不是一件事,而是三道筛——而它们要从便宜排到贵"。
前两道,一句话就够
先说"前两道",因为它们在另一篇里已经写透了"。
而在这儿,只给你一句话的排除法"。
第一道的排除法:"在这个对话里搜一次"。
也就是说:"别用全局搜,先在当前对话里搜"。
因为"范围不对",是"最常见的那一条"。
所以那句可以这样记":"先用一句话排除范围:就在这个对话里搜一次——而范围不对,是最常见的那一条"。
第二道的排除法:"换一个更短的词"。
也就是说:"你搜的那个词,可能太长,或者它本来就不是那几个字"。
所以那句可以这样记":"再一句话排除类型和用词:换一个更短的词,或者换一个说法"。
而这两道筛的答案,是同一类":
"你搜的地方不对"。
所以那句可以这样记":"前两道的答案,是你搜的地方不对——而这类答案,改一改就能验证"。
第三道,才是这篇的重点
接着说"第三道",因为它最不容易想到"。
也就是说:"你搜的地方对,词也对"——而还是没有"。
而这时候,要怀疑的,是"那东西在不在这一台上"。
所以那句可以这样记":"前两道的答案是你搜的地方不对;而第三道的答案,是你要的东西还没到这台机器上"。
而这一条"的关键,是"搜索在哪儿找"。
也就是说:"它是在你这个设备能看到的东西里找"。
而那些东西,有的是"下来过的",有的是"还没下来的"。
所以那句可以这样记":"搜索是在你这台设备上找——所以这台没有的,它搜不出来"。
最硬的一个判断:换一台搜同一句
接着说"怎么验第三道"。
而它只有一个动作":
"换一台设备,搜同一句"。
而结果只有两种"。
"两台都搜不到"——那问题不在同步"。
"一台搜得到,一台搜不到"——那就是第三道"。
所以那句可以这样记":"最硬的一个判断,是换一台设备搜同一句——因为那能一次把有没有同步这一层单独验出来"。
而这一条的好处,是它"不用问任何人"。
也就是说:"你自己就能验"。
所以那句可以这样记":"同一句,A 搜得到而 B 搜不到,那问题就不在关键词,而在这台机器上有什么"。
而这一条,也是这一篇的核心一句"。
所以那句可以这样记":"不是你搜错了,是这台机器上还没有那样东西——而这两件事,改法完全不同"。
刚登录的设备,为什么慢慢才全
接着说"一种很常见的情况"。
也就是说:"你刚在一台新设备上登录"。
而那台设备上的历史,是"一点一点来的"。
而不是"一下全到"。
所以那句可以这样记":"刚登录的设备,历史是一点一点来的,而不是一下全到"。
而这一条的后果,很具体":
"你搜的时候,它可能还在来"。
所以那句可以这样记":"你搜的时候它可能还在来——所以那个结果,是那一刻的结果"。
而这也解释了一个奇怪的现象":
"隔一会儿再搜,有了"。
所以那句可以这样记":"隔一会儿再搜就有了——而那不是说搜索不稳定,是它那时候才到"。
第三道还能再细分
接着说同步这一层的内部,因为它不止一种。
也就是说:它大概分三种。
第一种:整段对话还没出现。
第二种:对话在,而里面的部分内容没到。
第三种:那一条在别处,而这台没下来。
所以那句可以这样记:同步这一层还能再细:整段对话没出现、对话在而里面没到、以及那一条没下来。
而怎么分?
看搜索结果里有没有那个对话。
所以那句可以这样记:看搜索结果里有没有那个对话——连对话都不在,那是一条都没下来。
而这一条的用处,是它让你知道等多久。
也就是说:一条都没下来,那要等的时间长。
所以那句可以这样记:一条都没下来要等得久,而只差某一条,往往很快就补上。
只有一台设备怎么办
接着回答一个很实际的问题,因为很多人手上只有一台。
也就是说:换一台搜同一句,那个办法用不上。
而还有一个土办法。
过一会儿再搜一次。
所以那句可以这样记:只有一台也有办法:过一会儿再搜,结果变了,那就是第三道。
而这一条的原理,其实很朴素。
也就是说:同步是会动的。
而搜索,是那一刻的快照。
所以那句可以这样记:同步是会动的,而搜索是那一刻的快照——所以快照会变。
而这一条,也把搜索这件事说清了。
也就是说:它从来不是在一个静止的东西上找。
所以那句可以这样记:它不是在静止的东西上找——所以同一个词,两次结果可以不同。
三道都排完,还没有
最后说那个"排完了还是找不到"的情况。
也就是说:三道都过了,而结果还是没有。
那只剩两种可能。
要么它真的没有。
要么它有,而搜索够不到。
所以那句可以这样记:三道都排完还没有,那就只剩两种:真的没有,或者它在搜索能够到的地方之外。
而后者的例子,很具体。
也就是说:文件里的字。
所以那句可以这样记:文件里的字搜不到,不是因为没同步,而是因为搜索只认消息里的字。
而这一条,把"没有"和"够不到"分开了。
也就是说:够不到的东西,是真的在,而你搜不到。
所以那句可以这样记:够不到的东西是真的在——而它和"没有"的区别,是它还在那儿。
而这一条也给了个出路。
也就是说:够不到的那一类,得靠别的路子找。
所以那句可以这样记:够不到的就别用搜索——而是去那个类型里翻。
为什么顺序不能反
最后说一个很小、但很省时间的点。
也就是说:这三道筛的顺序,不能反。
因为前两道便宜。
而第三道,要等。
所以那句可以这样记:前两道改一下就能验,而第三道只能等——所以顺序反了,你会把等的时间浪费在怀疑关键词上。
而这一条的实际含义,很具体。
也就是说:先做能立刻验的那一道。
所以那句可以这样记:先做能立刻验的那一道——因为要等的那一道,等的时候你还能做别的。
而这一条,其实是个通用的道理。
也就是说:排查这件事,该从便宜排到贵。
所以那句可以这样记:排查要从便宜排到贵——因为你不知道答案在哪,但你至少知道哪个先问。
搜索结果是个快照
再补一个说法,因为它能解释三个现象。
而这三个现象,看起来不相关。
第一个:同一个词,两次结果可以不同。
第二个:你刚发的东西,不一定立刻搜得到。
第三个:换一台设备,等于换了一个快照。
所以那句可以这样记:同一个词两次结果可以不同、刚发的不一定立刻搜得到、换一台等于换了一个快照——而这三条,都是同一个原因。
而那个原因,就是快照这两个字。
也就是说:它不是在查一本账。
而是在拍你手上这一刻的样子。
所以那句可以这样记:它不是在查台账,而是在拍你手上这一刻的样子。
而这一条,也能让人少生一点气。
也就是说:结果不一样,不是它乱。
所以那句可以这样记:结果不一样不是它乱,而是那两次拍的不是同一刻。
这一篇和另外两篇的关系
最后说清分工,因为搜索这块有三篇。
也就是说:前两道,在讲四种搜法那篇里写透了。
而点进去看不见那一层,在另一篇。
所以那句可以这样记:前两道在搜法那篇里写透了,点进去看不见在另一篇——而这一篇只补第三道:东西在不在这一台上。
而为什么要单独补这一条?
因为那五个原因里,没有它。
所以那句可以这样记:那五个原因里没有这一条——而它恰好是唯一一条你什么都做对了还是搜不到的原因。
而这一条也说明了三篇的边界。
也就是说:一篇管怎么搜,一篇管搜到了看不见。
而这一篇,管搜不到时怎么排。
所以那句可以这样记:一篇管怎么搜,一篇管搜到了看不见,这一篇管搜不到往哪儿排。
几个常见的坑
第一个坑,是一上来就怀疑东西没了。而可能是范围或词的问题。
第二个坑,是只在一台设备上验。而那验不出同步这一层。
第三个坑,是刚登录就急着搜全部。而那台还在收。
第四个坑,是把搜索当成"全都在"。而它只在这台有的东西里找。
第五个坑,是三样混着改。而那样改完也不知道是哪一样起了作用。
最后
如果只用三句话记住这篇,我希望是这三句话。
搜不到不是一件事,而是三道筛,而从便宜排到贵:先排范围,再排类型,最后才怀疑这东西在不在这一台上。前两道的答案是你搜的地方不对,改一改就能验证;而第三道的答案,是你要的东西还没到这台机器上。
而第三道有个最硬的判断法,只要一个动作:换一台设备搜同一句。两台都搜不到,那问题不在同步;一台有一台没有,那就是同步这一层——而这也是这一篇的核心:不是你搜错了,是这台机器上还没有那样东西。
最后补一条:刚登录的设备,历史是一点一点来的,所以你搜的那一刻,它可能还在来。隔一会儿再搜就有了,那不代表搜索不稳定,只代表它那时候才到。