在一个由 md 文件组成的小型文档系统里,如何方便快捷地实现多关键词搜索? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MarioLuisGarcia
V2EX    问与答

在一个由 md 文件组成的小型文档系统里,如何方便快捷地实现多关键词搜索?

  •  
  •   MarioLuisGarcia 2018 年 3 月 30 日 2122 次点击
    这是一个创建于 2899 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在编程的过程中,我会产生一些需求,并尝试去实现这些需求。当我实现了这些需求后,我会把过程记录下来,以供以后复用。

    这些经验以 markdown 的格式被我记录下来,针对一个具体的需求,我会给那个需求加上一个 HEAD ###, 再在 HEAD 下面记载它的实现方法。我把这称之为一个条目 条目是针对需求的解决办法的记录,有的长,有的短。

    一个简短的条目如:

     ### List file and directories by size du -hs * | sort -h 

    一个较长的条目如:

    ### 在使用 ipython 时获得更好的阅读 help 文档视觉体验 > 内容涉及解决问题的思路,如何找到的网上的帮助信息及最终的解决方案。 > 此处略去几百字的具体内容以获得更好的排版和阅读效果 

    目前我正在使用的方案是: 将相近属性的条目们储存在单个的 md 文件里,md 文件按类别储存在文件夹里,文件夹再进行分类整理。 对上述文件系统使用 gitbook 框架进行索引,展现和简易搜索 网站地址: [https://juchenzeng.gitbooks.io/zjc-s-programming-notes/content/]

    我现在想要满足的需求痛点是(需求程度按先后顺序由高至低): 进行多关键词组合搜索 ( gitbook 不支持) 进行整句搜索 ( gitbook 不支持) 进行模糊搜索 ( gitbook 不支持) 搜索后点击条目后直接跳转到条目所在位置 ( gitbook 只能跳到由条目所在的 md 文件渲染成的 html 页面的顶部)

    针对痛点目前想到的模糊的解决方案:

    1. 在 md 文件里给每个条目加上 html 的某类 tag ( tag 里可以加入多个描述当前条目的关键词),再寻找相关的可以搜索这种 html tag 里关键词的框架或工具。

    2. 将每个条目格式化存入数据库(可能还要写一些格式化工具 Orz),用 flask 之类的框架写一个动态 python web 服务,使用 eleastic search 之类的框架来作为搜索服务,查询时对数据库里的数据进行查询,将结果返回到 html templates 里渲染显示出来。

    我感觉第二种方案的工作量会大很多,所以我现在还是比较倾向于第一种方案。但我又不太了解具体可用的框架和工具,因此特来请教。

    想请教一下各位,关于我想实现的需求(最想实现的是“多关键词搜索”和“前端展现时直接跳转到关键词所在的条目位置”),各位有什么宝贵的意见和建议呢?(十分期待)

    2 条回复    2018-03-31 07:49:18 +08:00
    MarioLuisGarcia
        1
    MarioLuisGarcia  
    OP
       2018 年 3 月 30 日
    找到一个进阶的 search 插件,现在整句搜索和搜索后跳转的需求已经被满足了。

    https://www.npmjs.com/package/gitbook-plugin-search-plus
    MarioLuisGarcia
        2
    MarioLuisGarcia  
    OP
       2018 年 3 月 31 日
    目前已有 70 位 V2EX 注册会员查看了本主题
    1 次来自 Google 点击
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     957 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 19:34 PVG 03:34 LAX 11:34 JFK 14:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86