类似知乎和公众号这种富文本数据一般怎么存储?

2020-06-06 12:01:37 +08:00
 luliqu2005

如果都保存数据库,肯定影响查询效率,并且搜索也有问题。 我现在 java 技术栈 遇到的问题如下: 1.富文本的存储方案是 mysql,文本,es 或者其他的? 2.公众号或者问答的历史纪录数据怎么设计 3.如果做成 mysql 保存怎么优化搜索

我现在的技术方案是放到 es 里面。不知道各位大神有什么最佳实践

7029 次点击
所在节点    程序员
20 条回复
luliqu2005
2020-06-06 12:03:46 +08:00
或者有什么开源库分享一下
iConnect
2020-06-06 13:03:17 +08:00
存 nosql 或者 cassandra 都可以
sivacohan
2020-06-06 13:17:45 +08:00
Postgres + fdw + elasticsearch
mornlight
2020-06-06 13:31:02 +08:00
常见的就数据库存一份,搜索用额外的 ES 。
任何正经点的关键词搜索肯定是没法用 MySQL 做的。
alalida
2020-06-06 14:51:19 +08:00
没理解你的意思,在我看来富文本也是文本,只是多了一些渲染用的修饰符,直接按文本存储应该就可以吧。如果要全文查找,就上 es 。
catror
2020-06-06 14:59:18 +08:00
数据可以冗余,存在多个地方
falcon05
2020-06-06 15:01:29 +08:00
不存数据库存哪里?
mostkia
2020-06-06 15:48:54 +08:00
我是直接 page 文件存储,uid=文件名,索引时直接让后台读取文件内容倒内存吐出到前台。性能没怎么测试,感觉文章内容多的话,这样存储比较合适?而且能够方便的备份内容。
mostkia
2020-06-06 15:50:02 +08:00
当然索引还是需要创建存储在数据库的,只是内容以文件形式存放在文件系统里。
ipwx
2020-06-06 15:52:03 +08:00
存一份富文本,一份全文搜索引擎的倒排索引。关键词,全文搜索。
luliqu2005
2020-06-06 16:03:54 +08:00
@mostkia 这种对磁盘 io 要求很高吧。直接读取文件
luliqu2005
2020-06-06 16:05:14 +08:00
@iConnect
@sivacohan
你们说的这种方案又在用吗?没实践过不敢贸然用。现在能想到的就是 db 一份,es 一份。搜素走 es
ipwx
2020-06-06 16:08:33 +08:00
@luliqu2005 有啥不敢用的,你这是一种正确思路啊。ES 主要就不是数据库,而是全文搜索引擎,有倒排索引的。建议搜索一下全文搜索的基本原理,可不是拿着数据库记录一条条读出来然后 LIKE 匹配那么简单。
namelosw
2020-06-06 17:52:59 +08:00
S3 或者等价的东西 + ES
mostkia
2020-06-06 20:08:07 +08:00
还好吧,如果都是文档之类的那一般都是小文件,那比较考验随机独写吧,理论上可能对机械盘不太友好,可以使用固态来优化。当然以上都是基于经验的推理,只能作为以后优化的参考,目前我的站点还没有产生瓶颈的用户数量,优化不存在的[狗头]
mostkia
2020-06-06 20:08:34 +08:00
srlp
2020-06-06 22:26:46 +08:00
存储 mysql,搜索 es
wangyzj
2020-06-06 22:41:50 +08:00
mysql + es 呗
luliqu2005
2020-06-06 23:57:01 +08:00
多谢各位大佬,我先按照 es+mysql 组合吧
luliqu2005
2020-06-06 23:58:23 +08:00
多谢各位大佬,我先用 es+mysql 的组合吧

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

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

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

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

© 2021 V2EX