简短回答
是的,Whizi会搜索你的聊天记录,而且是从同一个搜索框里分两层进行。侧边栏的搜索框会随着你的输入即时过滤聊天标题,当搜索词达到三个字符时,它还会在服务器上搜索你的消息内容,把匹配到的聊天列在“在消息中找到”(Found in messages)标题下,并附带匹配文字周围的一段摘要。
搜索框能覆盖到的范围:
| 你搜索的内容 | 是否匹配 |
|---|---|
| 聊天标题 | 是,随输入即时在浏览器里过滤 |
| 消息里的文字 | 是,从三个字符起,在服务器上搜索 |
| 归入某个项目的聊天 | 是,一次搜索同时覆盖项目和未分组列表 |
| 侧边栏还没加载出来的聊天 | 是,消息搜索会跑遍你的整个历史记录 |
消息搜索需要登录账号并联网。当请求跑不起来时,比如离线状态,标题过滤仍然可以单独正常工作。
两层搜索各自负责什么
标题匹配在你的浏览器里运行,所以它是即时的,而且不管搜索词多短都能用。消息搜索则是一次服务器请求,Whizi在这方面刻意保持克制:搜索词不满三个字符就什么都不会发送,请求还会等你停止打字450毫秒之后才发出,而且本次会话里已经搜索过的关键词会直接从缓存里取结果,不会再发一次请求。
一次消息搜索最多返回20个匹配的聊天。每一条都会显示在“在消息中找到”(Found in messages)标题下,并带有匹配文字周围的一段摘要,这样你不用一一打开就能分辨结果。请求进行时,侧边栏会显示“正在搜索消息…”(Searching messages…),如果标题和消息都没有匹配,则会显示“没有符合搜索条件的聊天”(No chats match your search)。
搜索对话的请求频率被限制为每分钟20次。正常打字根本不会接近这个上限,因为发送前的等待时间和会话缓存都把请求数量压得很低。
对老账号来说有一个细节很重要:侧边栏是分页加载聊天列表的,但消息搜索在服务器上会跑遍你的整个历史记录。一个你好几个月没滑到过的聊天,依然会作为匹配结果出现。
一次搜索覆盖所有项目
打开某个项目时,只会显示该项目里的聊天。而输入搜索词会去掉这个限制:匹配会同时跨项目和未分组列表进行,所以不管一个聊天放在哪个文件夹里,你都能找到它,不用记住当初把它归到了哪里。
除此之外,项目之间是严格划分的:一个聊天最多只属于一个项目,这也是侧边栏里“其他全部”视图能成立的原因。搜索是唯一不理会这种划分的地方。重命名、删除以及项目结构本身的相关内容,见整理你的对话。
给你以后会用到的聊天重新命名
标题依然是最好用的抓手。标题匹配是即时的,离线也能用,而且对短到消息搜索够不着的搜索词同样有效,所以一个用你真会输入的词命名的聊天,会比其他任何结果都先冒出来。
重命名时会强制执行的规则,按你会遇到的顺序排列:
- 空白名称会被拒绝,提示“聊天名称不能为空。”(Chat name cannot be empty.)
- 超过100个字符会在浏览器端被拒绝,提示“聊天名称过长(最多100个字符)。”(Chat name is too long (max 100 characters).)
- 后端对同一字段的上限是120个字符,提示为“对话标题必须在1到120个字符之间。”(Conversation titles must be between 1 and 120 characters.)
- 如果请求本身失败,你会看到“重命名聊天失败,请重试。”(Failed to rename chat. Please try again.)
两个习惯能解决大部分问题。把你以后会搜索的名词放进标题里,也就是客户、文件、功能或决定这类词,而不是动词。而且最好在一次对话快结束时重命名,而不是一开始就命名,因为到那时你才真正知道这段对话最终讲的是什么。
导入的聊天和其他聊天一样可以被搜索
Whizi支持从ChatGPT和Claude导入对话,导入时会保留原来的标题,并截断到120个字符。如果导出文件里没有可用的标题,对话就会变成“导入的聊天”(Imported chat)。每种导入方式都有各自的说明页面,从ChatGPT导入聊天和从Claude导入聊天,里面介绍了各自期望的导出文件格式,以及哪些内容会被保留下来。
导入之后,这些聊天就和普通聊天没有区别,两层搜索都能覆盖到它们:标题即时过滤,消息内容也从三个字符起被搜索,和你在Whizi里自己写的聊天一样。所以就算一次大批量导入留下一长串全都叫“导入的聊天”的记录,依然可以凭里面的内容找到它们,不过把你以后大概率还会用到的那几条重新命名,仍然是更快的找回方式。
导入操作也是幂等的,依据账号加来源加来源ID来判断,所以重新跑一遍同一份导出文件,不会把你已经重命名过的记录再复制一份。如果导入本身失败了,你看到的提示信息在聊天导入错误里有说明。
什么时候搜索不是合适的工具
不满三个字符的搜索词永远不会离开你的浏览器,所以像“Q3”这样的两个字符缩写,只能匹配标题。如果你记得的片段就这么短,不如搜索它附近更长的一段短语,或者找到这个聊天后直接给它重新命名。
如果要在产品之外搜索,账号导出就是办法。“导出数据”(Export Data)在“设置”里的“账号”下,会把你的账号打包成一个可下载的JSON文件,里面包含聊天和消息,以及记忆、项目和文件元数据、媒体、分享链接、订阅和推荐资料。用任意编辑器打开这个文件就能搜索。导出功能限制为每分钟5次请求,因为它要读取账号拥有的一切内容。具体机制见导出你的聊天和文件。
- 搜索会即时匹配聊天标题,并从三个字符起匹配消息内容
- 消息匹配会出现在“在消息中找到”标题下,并带有一段匹配摘要
- 一次消息搜索最多返回20个匹配的聊天
- 一次搜索同时覆盖项目和未分组的聊天
- 消息搜索能触及你的整个历史记录,而不只是侧边栏已经加载出来的聊天
- 重命名在浏览器端上限为100个字符,后端上限为120个字符
- 导入的聊天会保留原标题,没有标题的会变成“导入的聊天”
- 如果要在产品之外搜索,可以从“设置”里导出账号的JSON文件
常见问题
我可以搜索我在Whizi里的聊天记录吗?
可以,通过侧边栏聊天列表上方的搜索框就能做到。聊天标题会随输入即时过滤,当搜索词达到三个字符时,你的消息内容也会在服务器上被搜索,匹配的聊天会列在“在消息中找到”标题下。一次搜索会同时覆盖项目和未分组列表。
我可以搜索消息里的内容吗?
可以。从三个字符起,搜索框就会在服务器上查询你的消息内容,最多返回20个匹配的聊天,每一个都会显示匹配文字周围的一段摘要。这个搜索会跑遍你的整个历史记录,包括侧边栏还没加载出来的聊天,而且需要登录账号并联网。
为什么我明明知道某个聊天存在,却搜不到?
先检查一下搜索词的长度:不满三个字符时只会匹配标题,所以太短的片段搜不到消息内容。消息搜索还需要联网,联不上的时候,标题过滤会单独继续工作。等你找到这个聊天后,把它重命名成你以后真的会用来搜索的词,之后即时的标题匹配就能一直找到它。
我可以搜索导入的ChatGPT和Claude对话吗?
可以,规则和其他聊天完全一样。导入的对话会保留原标题,并截断到120个字符,没有可用标题的对话会变成“导入的聊天”。因为导入的聊天一落地就是普通聊天,消息搜索同样能触及它们的内容,所以就算一批导入全都叫同一个名字,也能凭里面的内容把它们区分开。
搜索能找到项目里面的聊天吗?
能。输入搜索词会跨越项目和未分组列表进行匹配,所以不管一个聊天放在哪个文件夹里都能找到。这是项目划分被忽略的唯一地方:在其他任何情况下,一个聊天最多只属于一个项目,这也是侧边栏会把项目和其他内容分开列出的原因。