如果都保存数据库,肯定影响查询效率,并且搜索也有问题。 我现在 java 技术栈 遇到的问题如下: 1.富文本的存储方案是 mysql,文本,es 或者其他的? 2.公众号或者问答的历史纪录数据怎么设计 3.如果做成 mysql 保存怎么优化搜索
我现在的技术方案是放到 es 里面。不知道各位大神有什么最佳实践
1
luliqu2005 OP 或者有什么开源库分享一下
|
2
iConnect 2020-06-06 13:03:17 +08:00 via Android
存 nosql 或者 cassandra 都可以
|
3
sivacohan 2020-06-06 13:17:45 +08:00 via iPhone
Postgres + fdw + elasticsearch
|
4
mornlight 2020-06-06 13:31:02 +08:00
常见的就数据库存一份,搜索用额外的 ES 。
任何正经点的关键词搜索肯定是没法用 MySQL 做的。 |
5
alalida 2020-06-06 14:51:19 +08:00 via Android
没理解你的意思,在我看来富文本也是文本,只是多了一些渲染用的修饰符,直接按文本存储应该就可以吧。如果要全文查找,就上 es 。
|
6
catror 2020-06-06 14:59:18 +08:00 via Android
数据可以冗余,存在多个地方
|
7
falcon05 2020-06-06 15:01:29 +08:00 via iPhone
不存数据库存哪里?
|
8
mostkia 2020-06-06 15:48:54 +08:00
我是直接 page 文件存储,uid=文件名,索引时直接让后台读取文件内容倒内存吐出到前台。性能没怎么测试,感觉文章内容多的话,这样存储比较合适?而且能够方便的备份内容。
|
9
mostkia 2020-06-06 15:50:02 +08:00 1
当然索引还是需要创建存储在数据库的,只是内容以文件形式存放在文件系统里。
|
10
ipwx 2020-06-06 15:52:03 +08:00
存一份富文本,一份全文搜索引擎的倒排索引。关键词,全文搜索。
|
11
luliqu2005 OP @mostkia 这种对磁盘 io 要求很高吧。直接读取文件
|
12
luliqu2005 OP |
13
ipwx 2020-06-06 16:08:33 +08:00
@luliqu2005 有啥不敢用的,你这是一种正确思路啊。ES 主要就不是数据库,而是全文搜索引擎,有倒排索引的。建议搜索一下全文搜索的基本原理,可不是拿着数据库记录一条条读出来然后 LIKE 匹配那么简单。
|
14
namelosw 2020-06-06 17:52:59 +08:00
S3 或者等价的东西 + ES
|
15
mostkia 2020-06-06 20:08:07 +08:00
还好吧,如果都是文档之类的那一般都是小文件,那比较考验随机独写吧,理论上可能对机械盘不太友好,可以使用固态来优化。当然以上都是基于经验的推理,只能作为以后优化的参考,目前我的站点还没有产生瓶颈的用户数量,优化不存在的[狗头]
|
16
mostkia 2020-06-06 20:08:34 +08:00
|
17
srlp 2020-06-06 22:26:46 +08:00 via iPhone
存储 mysql,搜索 es
|
18
wangyzj 2020-06-06 22:41:50 +08:00
mysql + es 呗
|
19
luliqu2005 OP 多谢各位大佬,我先按照 es+mysql 组合吧
|
20
luliqu2005 OP 多谢各位大佬,我先用 es+mysql 的组合吧
|