漫游笔记的搜索功能

本站的搜索功能是使用 fusejs 实现的,之前写过一篇笔记:使用 fusejs 给 hugo 博客增加搜索功能,大致介绍了如何实现。

点击右上角的搜索图标或者按下键盘的 / 键,即可打开搜索框。

模糊搜索

默认搜索行为就是模糊搜索,输入任何关键字,即可搜索。

搜索包含 python 关键字的内容,输入:python 或者 pythno
2024052719393762.png
2024052719402458.png

可以看到,即便输入了错误的单词,也能搜索到结果。此处的“模糊”程度,取决于 threshold 配置项。但是经过实测,模糊搜索不是很“智能”。

除了模糊搜索,fusejs 还提供了很多高级搜索功能。

精确匹配关键字

输入:=操作系统
2024052719411426.png

这个搜索方式,需要字符串的每一个字符都和关键字匹配,才能被搜索到。字符串的长度取决于如何构建源数据(index.json)。

包含关键字

输入:'python
2024052719414558.png

和模糊搜索不同,如果输入 'pythno,搜索结果将只展示包含错误单词 pythno 的记录:
2024052719424868.png

以关键字开头

输入:^python
2024052719432534.png

以关键字结尾

输入:github$
2024052719435679.png

取反搜索

上述介绍了三种高级搜索功能

对应的三种取反搜索是

单独的使用取反搜索意义也不是很大,通常用来进一步过滤搜索结果。

输入:factory$,会得到:
2024052719462417.png

此时输入: factory$ !class,即可排除包含 class 单词的搜索结果
2024052719501031.png

搜索保留字符

todo