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

2018-03-30 12:20:58 +08:00
 MarioLuisGarcia

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

这些经验以 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 里渲染显示出来。

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

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

1670 次点击
所在节点    问与答
2 条回复
MarioLuisGarcia
2018-03-30 12:44:03 +08:00
找到一个进阶的 search 插件,现在整句搜索和搜索后跳转的需求已经被满足了。

https://www.npmjs.com/package/gitbook-plugin-search-plus
MarioLuisGarcia
2018-03-31 07:49:18 +08:00
目前已有 70 位 V2EX 注册会员查看了本主题
1 次来自 Google 点击

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX