Shotnest · 资料库
理解子串命中的边界
在 Shotnest 搜索工具中,“order”能匹配“preorder reference”,因为搜索查找的是子串,而分类器会检查词的边界。
子串搜索与关键词边界
只要记录规范化后的文字在任何位置包含规范化后的查询,哪怕是在一个更长的词里面,搜索工具就会保留这条记录。order 就在 preorder 里面,所以记录 1 匹配,记录 2“delivery note”不匹配。分类器更严格:对拉丁字母和西里尔字母的关键词,它要求关键词前后紧挨着的不能是字母。因此,书架判断和搜索命中遵循的是不同的规则。
应用搜索对你输入的每个词同样按子串查找,它还会检查文字的第二种形式,即把被换行拆开的词连起来的形式,所以行末带连字符的词仍能被找到。
规范化在子串测试之前进行,所以搜索 cafe 也能找到更长的词中的 café。
输入值
- 搜索截屏中的文字
- order
| 行 | 文本记录 |
|---|---|
| 1 | preorder reference |
| 2 | delivery note |
结果
- 匹配记录
- 1
| 行 | 文本记录 |
|---|---|
| 1 | preorder reference |
缩小宽泛的匹配
- 搜索 order,留意记录 1 是通过 preorder 匹配的。
- 下结论之前,先读完整个匹配的词。
- 加上有辨识度的部分,比如订单号:“order #4471”只匹配包含它的记录。
- 打开截屏,查看匹配周围的背景。
- 查询 order · 记录 preorder reference、delivery note
- 匹配的记录:1
- 查询 order #4471 · 加入第三条记录“Order #4471 shipped”
- 匹配的记录:3
很短的查询会匹配得很广。搜索 pay 会同时匹配“Repayment schedule”和“Pay now”,所以工具返回记录 1 和 2。
对子串命中的误读
- 把 preorder 上的匹配当作一笔真实订单的记录。
- 以为像“pay”这样的短查询只会找到付款;它也会找到包含它的词。
- 指望搜索命中会改变分类器选定的书架。
- 拷贝的文字中有个词被拆在两行,就放弃了,而不是去搜索它较短的一部分。
匹配不等于分类
子串命中告诉你某些字符出现在哪里。它不告诉你这条记录讲的是什么。用下方链接的搜索工具找出候选,然后逐一阅读。
子串匹配也不管字符在哪一行。请在截屏中读匹配到的那一行本身,而不是整条记录。