新手问题 ElasticSearch 和 Mysql 配合使用的话,同一份数据是不是必须在 ElasticSearch 和 Mysql 各存一份?

gofreesky · 2015年05月16日 · 最后由 gofreesky 回复于 2015年05月17日 · 6575 次阅读

如题~

简单的回答,是的。 如果你愿意且有经验,而且场景合适的话,你甚至可以把 ElasticSearch 当数据库用,就不需要 MySQL 了。

不是 es 只做搜索,es 的 rails gem 里面有个 mapping 方法可以设置那些字段需要被索引,默认是全部索引. es 搜到的结果只是给你一堆对应的 id, 然后用这些 id 到数据库里面查出对应的完整的 rows.

#2 楼 @ch3n

ElasticSearch 内部,每条记录(index/type/document)都会保存一份完整的 json。

#1 楼 @lgn21st 自己 google 了一些资料,也大概有些概念了,我的理解应该是对于一些不需要频繁搜索的数据,比如用户表之类可以只在 Mysql 存,对于需要频繁搜索的数据,比如帖子,订单之类的表在 ElasticSearch 和 Mysql 都存一份

#2 楼 @ch3n@xiaoronglv所说即使某些字段没有建索引,也是完整存储每条记录的吧,只是说如果这条记录的信息还不够,可以再使用关键 ID 到 Mysql 里查询

需要 登录 后方可回复, 如果你还没有账号请 注册新账号