全文搜索
来源:5-8 -simple-query-string-query

慕斯卡8249573
2019-06-30
你好,我最近在做聚合报表的查询的时候发现使用mysql做筛选跟查询需要join多张关联表,这样性能会比较差,所以考虑用elasticsearch做全文搜索,但是使用elasticsearch做全文搜索的话需要把聚合表所有的字段保存在elasticsearch上,如果mysql的聚合表中数据有可能经常改动,我需要怎么保证elastisearch内容跟mysql保持一致,如果频繁更改会不会影响elastisearch性能,还有每次mysql更改都需要更改elasticsearch关联的所有数据,请问下一mysql的多表聚合查询是怎么做全文搜索的,谢谢
写回答
1回答
-
rockybean
2019-07-05
mysql 的多表数据需要提前关联好后存入 es 中,因为 es 无法做 join,这里一般要采取空间换时间的方法
如果你要实时的同步 mysql 的变化,那么你可以选择在业务逻辑层做处理,即凡是修改 mysql 数据的地方,都触发 es的数据更新。另一个方法是订阅 mysql 的数据变更,比如 binlog,然后发现是相关表变动时,则触发更新 es 的逻辑
频繁更新 es 数据性能肯定不会太高,但这个也是相对的,要注意控制单个分片的大小,建议这种搜索场景不要超过 15GB
00
相似问题
磁盘文档和DB数据如何创建索引
回答 1
条件查询
回答 1