搜索整个账户
艾玛收藏漫画、黑胶唱片和交换卡。她有三个收藏、几百件藏品,副本数量是藏品的两倍。有人问她,那本黑色封面的蜘蛛侠是不是还在手上。她不该还得记住那本放在哪个收藏里。
搜索用一个输入框回答这个问题。输入一个词,KolleK 就会一次性查找账户里的所有内容:藏品、收藏、副本、照片、借出记录、存放位置、套组、系列、分类、标签和文档。
从侧边栏顶部的搜索打开,或者在任何界面按 ⌘K(Windows 与 Linux 上是 Ctrl K)。
搜索的范围
搜索不只看名称,也看归档在一条记录周围的词,这正是它有用而不只是字面匹配的原因。
搜索 spider 会找到:
- 名为 Amazing Spider-Man #300 的藏品
- 副本 ASM-300-B,因为它所属藏品叫这个名字
- 名为
spider-man-300-front.jpg的照片 - 一件你从未命名为“Spider-Man”的藏品,因为你给它加了 spider-man 标签
- 借给朋友的一笔借出记录,因为借出的副本正是这本漫画
所以,从一个标签、一个分类或一个存放位置出发的搜索,仍然能带你找到真正想找的东西。
回收站里的内容不会出现在搜索结果中。把它还原,就又能被搜到了。
匹配规则
四条规则就够了。
每个词都必须匹配。 多加一个词会收窄结果,而不是扩大结果。miles davis 只会找到两个词都出现过的记录。如果结果太多,就再加一个词。
词从开头开始匹配。 输入 spi 能找到 Spider-Man。你不必把词打完,但必须从头打起:搜索 man 找不到 Spider-Man,因为 man 不是其中任何一个词的开头。
忽略大小写和标点。 asm-300、asm 300 和 ASM_300 的行为完全一样。当你自己的编号用了连字符、点号或下划线,而你又记不清用的是哪个时,这一点很重要。
忽略单个字母。 单独一个字母太常见,不值得建立索引,因此会从查询中去掉。如果你只搜一个字母,得到的是空结果,而不是全部结果。
读懂结果
结果按类型分组,藏品排在最前。每一行显示名称、说明记录类型的徽标、所属收藏(如果有),以及一行上下文:一件藏品有几个副本、一个副本存放在哪里、一笔借出记录给了谁。
每行右侧,名称匹配表示你输入的每个词都出现在记录本身的名称里;文本匹配表示至少有一个词是在更外围的地方找到的,比如描述或标签。名称匹配排在前面,所以最贴近的答案通常就是第一行。
结果上方的胶囊按钮可以只看某一种记录。每个按钮都有自己的网址,因此“只看藏品”的搜索可以加书签,也可以分享给同一账户里的同事。
最多显示 50 条结果。超过时,列表下方的计数会告诉你总共匹配了多少条,而给查询再加一个词是找到目标最快的办法。
谁能搜到什么
搜索只在你的账户范围内进行。你永远看不到属于其他账户的内容,账户之外的人也看不到你的。
在你的账户内部,每种角色都可以搜索,每条结果打开的界面都是该角色有权打开的。只读成员有一个例外:标签只在所有者和编辑者才有的界面上管理,因此只读成员不会单独得到标签结果。但他们仍然能找到所有带有 spider-man 标签的藏品,因为标签名会计入携带它的藏品。
如果有内容没被搜到
搜索读取的索引会随着你的操作保持更新,所以新藏品在保存的那一刻就能被搜到。
有两种情况会让它短暂落后:
你重命名了其他记录会提到的东西。 重命名一个收藏,意味着其中每件藏品都要按新名称重新建立索引。这在后台进行,稍等片刻即可。
你刚刚升级了自托管实例。 在已有的安装上,索引是空的,需要构建一次。运行重建命令,所有内容就都能被搜到了:
php artisan search:rebuild-index
这条命令随时可以安全地重复运行,所以如果索引哪天出现偏差,它也是修复办法。