漫游笔记的搜索功能
本站的搜索功能是使用 fusejs 实现的,之前写过一篇笔记:使用 fusejs 给 hugo 博客增加搜索功能,大致介绍了如何实现。
点击右上角的搜索图标或者按下键盘的 /
键,即可打开搜索框。
模糊搜索
默认搜索行为就是模糊搜索,输入任何关键字,即可搜索。
搜索包含 python 关键字的内容,输入:python
或者 pythno
可以看到,即便输入了错误的单词,也能搜索到结果。此处的“模糊”程度,取决于 threshold 配置项。但是经过实测,模糊搜索不是很“智能”。
除了模糊搜索,fusejs 还提供了很多高级搜索功能。
精确匹配关键字
输入:=操作系统
这个搜索方式,需要字符串的每一个字符都和关键字匹配,才能被搜索到。字符串的长度取决于如何构建源数据(index.json)。
包含关键字
输入:'python
和模糊搜索不同,如果输入 'pythno
,搜索结果将只展示包含错误单词 pythno
的记录:
以关键字开头
输入:^python
以关键字结尾
输入:github$
取反搜索
上述介绍了三种高级搜索功能
- 包含
'python
- 以关键字开头
^python
- 以关键字结尾
python$
对应的三种取反搜索是
- 不包含
!python
- 不以关键字开头
!^python
- 不以关键字结尾
!python$
单独的使用取反搜索意义也不是很大,通常用来进一步过滤搜索结果。
输入:factory$
,会得到:
此时输入: factory$ !class
,即可排除包含 class 单词的搜索结果
搜索保留字符
todo