想写一个搜索本地文档的网站,有什么好的实现方式?

2022-08-23 19:37:40 +08:00
 ggp1ot2

应该不是搜索引擎吧。

就是有一堆 markdown 写的文档,每个文档都有一个或者多个标签。

现在需要写一个网页。网页打开就是一个空白搜索框。

搜索框输入一个标签,就自动将含有该标签的文档排列展示出来。

=================

实现这样的需求,大概用什么技术 /框架

如果是基于 Python 的就更好了。

我不清楚,类似这样的需求,应该是检索哪些关键词才能找到相关文档学习,网上一搜都是基于搜索引擎的

================

我目前想的,就是手动去定义,输入哪个标签出现哪些文章,就是自己固定的去写好(感觉有点笨,工作量也会大)

所以有没有一个简单一点的方式,这样后续新增新的文档,也只需要上传文档,标记好这个文档的标签就好了

有没有大神给点思路,或者能实现类似需求的文章的关键词,我自己学也行[哭]

2146 次点击
所在节点    程序员
22 条回复
Building
2022-08-23 19:47:26 +08:00
为每个 markdown 生成一个网站,部署在自己的服务器上让谷歌索引,然后直接谷歌站内搜索
ggp1ot2
2022-08-23 19:48:41 +08:00
@Building #1 这是一个思路,但是如果是给公司内部用,上不了谷歌咋办。。
renmu
2022-08-23 19:48:54 +08:00
用 ob 就行了,搜索功能都帮你做完了
ggp1ot2
2022-08-23 19:49:35 +08:00
@Building #1 还有的问题就是,不希望根据文章名或者内容索引,就是每个文章挂多个标签,只能通过标签搜到文章
ggp1ot2
2022-08-23 19:50:05 +08:00
@renmu #3 大佬,我能弱弱的问一句,ob 是啥吗
ggp1ot2
2022-08-23 19:51:35 +08:00
另外补充一句,最终交付,一定要是一个自己写出来的网站,有源码那种
TMaize
2022-08-23 19:57:46 +08:00
可以在
TMaize
2022-08-23 19:59:48 +08:00
可以规定个写标签的格式比如 Front Matter 。在写个服务监听变化的文件,生成索引

https://www.vuepress.cn/guide/frontmatter.html
superychen
2022-08-23 20:26:03 +08:00
flask 简单写个 API 就行了,前端就一个简单的搜索展示页面,调用下自己写的 API ,API 内部逻辑就是根据前端请求过来的标签关键字去本地文件遍历匹配内容标签,最终返回前端展示
如果文件很多,每次遍历费劲,python 还提供了文件监控的库,如 pyinotify ,watchdog 等,增加下监听每次变动更新下索引,查找从索引即可
ggp1ot2
2022-08-23 20:48:09 +08:00
@superychen 感谢,这个思路目测是可行的。

即前端还是 html+css+js
后端是 flask
用 Python 去搜索
ggp1ot2
2022-08-23 22:10:51 +08:00
@TMaize #8 感谢,我去看看去
Maxwe11
2022-08-24 00:22:21 +08:00
最简单最省心当然还是直接部个 es 就完了,不过就像 lz 说的,这算是搜索引擎的方案,可是确实省事儿;

如果不愿意用,最简单的前台无所谓写什么,后台文件和标签写入数据库,其实就是个定向搜索,做好数据结构一段儿 sql 解决,功能全面一些的可以挂 postgresql ,讲究的可以写 api ,嫌麻烦的直接 sql
ggp1ot2
2022-08-24 07:18:14 +08:00
@Maxwe11 感谢,写个 api 这个思路确实没想到过
AlisaDestiny
2022-08-24 10:58:18 +08:00
好巧,楼主和我需求一样,我也是用 md 写笔记,太多了搜索就成了难题。我目前准备用 meilisearch 做搜索引擎,选它主要是轻且支持 typo-tolerance ,用 rust 写 web 服务。
colorday
2022-08-24 11:21:31 +08:00
简单点的方案,买个 NAS 吧,比如:QNAP 威联通,内置的检索工具很强大,图片里面的文字都会建立索引,你想要的功能基本都有。存储文件就自动建立索引,很方便,零开发,还安全。😄
ggp1ot2
2022-08-24 11:24:45 +08:00
@AlisaDestiny #14 你这个是全文搜索吧。我也考虑过,但是全文搜索,总是会搜到一些并不想要的结果。。
ggp1ot2
2022-08-24 11:25:33 +08:00
@colorday #15 擦 这个思路倒是可以,完全没有想过,看起来开发成本最低了
hatsuyuki
2022-08-24 14:43:52 +08:00
huarong
2022-08-24 19:23:32 +08:00
可以把 md 内容导入到 es 中,通过 py 的 es api 做搜索
huarong
2022-08-24 19:54:30 +08:00
mysql 也支持 full text search ,数据量不大可以使用

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

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

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

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

© 2021 V2EX