Comments on Add full text search for Wiki system with lunr.js

  1. 基于分词的搜索也有不方便的地方,如果搜索的字并未被分成词,那么就搜不到结果,比如,有一篇文章中有“桌面图标”这个词,我在搜索栏中搜索“图标”,就没有任何结果。这样,尤其是在代码比较多的 wiki 中,很容易丢失一些信息。从使用方面来说,分词的搜索体验还不如直接提取文章全文本加正则的搜索方式。

    1. 目前用非官方的lunr修改版中文分词实现可能是有点问题了,后面估计可以想办法改进,总归还是不完美的。
      这个 Wiki 系统文档都是在不同子目录的独立文件,如果搜索时全部遍历提取再匹配那就太麻烦了。

      1. 我的博客里就是先把不同目录下的所有文章内容都提取纯文本,根据文章名做成 json,所有的内容放在一个json文件里,搜索的时候就不用再遍历,而是直接读取这个文件就好。由于是纯文本,所以博文多文件也很小,应该是比分词词表小很多。遍历过程也只是每发布一篇文章更新一次,对文件本身来说也类似与增量式更新。至于遍历过程麻烦,那反正都是机器干的事。

  2. 运行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)

Leave a Comment

Your email address will not be published. Required fields are marked *

*