Error: Cannot find module ‘nodejieba’
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at /mnt/x/Users/LiarOnce.DESKTOP-NRV42PI/Desktop/wikis/assets/lunr.min.js:7:1058
at Object. (/mnt/x/Users/LiarOnce.DESKTOP-NRV42PI/Desktop/wikis/assets/lunr.min.js:7:15224)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
基于分词的搜索也有不方便的地方,如果搜索的字并未被分成词,那么就搜不到结果,比如,有一篇文章中有“桌面图标”这个词,我在搜索栏中搜索“图标”,就没有任何结果。这样,尤其是在代码比较多的 wiki 中,很容易丢失一些信息。从使用方面来说,分词的搜索体验还不如直接提取文章全文本加正则的搜索方式。
目前用非官方的lunr修改版中文分词实现可能是有点问题了,后面估计可以想办法改进,总归还是不完美的。
这个 Wiki 系统文档都是在不同子目录的独立文件,如果搜索时全部遍历提取再匹配那就太麻烦了。
我的博客里就是先把不同目录下的所有文章内容都提取纯文本,根据文章名做成 json,所有的内容放在一个json文件里,搜索的时候就不用再遍历,而是直接读取这个文件就好。由于是纯文本,所以博文多文件也很小,应该是比分词词表小很多。遍历过程也只是每发布一篇文章更新一次,对文件本身来说也类似与增量式更新。至于遍历过程麻烦,那反正都是机器干的事。
运行node search.js library search_index.json这段命令时提示找不到nodejieba包,但我已经安装了这个包,请问如何解决。
module.js:472
throw err;
^
Error: Cannot find module ‘nodejieba’
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at /mnt/x/Users/LiarOnce.DESKTOP-NRV42PI/Desktop/wikis/assets/lunr.min.js:7:1058
at Object. (/mnt/x/Users/LiarOnce.DESKTOP-NRV42PI/Desktop/wikis/assets/lunr.min.js:7:15224)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
目前nodejieba问题解决了,但执行时发生了另一个错误:
Invalid Wiki-document-directory or Search-index-file: library
是不是 library 目录不在运行的当前路径下?也可以用绝对路径
明白了,但是为什么根目录不行
根目录是什么意思?Wiki 文档目录参数不用 library 而是直接用 MDwiki 程序目录?那样目录参数可以用 “.” 或者绝对路径吧
还有一个问题:
如何对标题进行搜索?
直接就支持的哦,搜索权重默认按 标题->关键字->内容 的优先级来。
大佬,有demo吗
看到了,原来是隐藏技能