在设置MySQL / ElasticSearch组合时,最好是:
>将所有模型信息完全同步到ES(甚至是非搜索数据),以便在找到结果时,我可以方便地获取所有信息.
>仅同步可搜索的字段,然后当我得到结果时,使用id字段查找MysqL数据库中的实际数据?
最佳答案
ElasticSearch是一个
搜索引擎.我建议你不要将它用作
数据库系统.我建议您只索引
搜索数据和
数据库中的唯一ID,以便您可以使用ElasticSearch返回的唯一键从
MysqL检索结果.
这样您就可以将这两个应用程序用于他们的目的.弹性
搜索不是
查询关系的最佳选择,除了简单地使用
MySql之外,您还必须编写更多用于操作相关数据的
代码.
此外,您不希望将持久层与搜索层捆绑在一起.这些应该尽可能独立,一个变化不应该尽可能地影响另一个.否则,如果必须更改,则必须更新两个系统.
在某些ID上查询MysqL非常快,因此您可以使用它并将慢速部分(查询全文)保留为弹性搜索.