一、前言
使用MySQL做为存储,表与表之间有很多是一对多关系,比如订单和订单商品明细,客户和客户地址等等,但是因为ES本身是扁平化文档结构,一般不同索引之间是没有关系的,ES在处理这种关系时相比MySQL并不擅长,不过也提供了几种方式来支持这种关系,下面就以客户和客户地址(一个客户有多个地址)为例来讲述一下各种类型存储的优缺点,正好我们本周一个迭代要把客户数据迁移到ES中。
客户基本信息:first、last、code、email
客户地址信息:city、address
二、数组
ES中其实不存在专用的数组类型,默认情况任何字段都可以包含0个或多个值,不过数组中所有值都必须具有相同的数据类型。
1、基本类型数组
注:addr准备存入多个地址,这里定义为text即可,定义时并没有关键字来设置为数组类型。
注:可以放0或多个值,只要类型一致或可以强制转换就可以存入。