elk之es数据结构

先看看数据库和java bean的结构:

创建两个对象:

public class Student{
	private String fristName;
	private String lastName;
	private String email;
	private Date joinDate;
	private StudentInfo info;
}

public class StudentInfo{
	private String bio;//性格
	private Integer age;
	private String[] interests; //兴趣爱好
}

StudentInfo info = new StudentInfo();
info.setBio("开朗");
info.setAge(25);
info.setInterests(new String[]{"唱歌","跳舞"})

Student student = new Student();
student.setFrostName("夏");
student.setLastName("文杰");
student.setEmail("[email protected]");
student.setJoinDate("2018-01-01");
student.setInfo(info);

这是传统的通过面向对象来确立两个类之间的关联关系。

当我们要把student对象放入数据库里时,我们会拆分为原来的两个对象,student和studentInfo。

student表:fristName,lastName,email,joinDate,还有一个外键到studentinfo的表中的数据字段。

studentinfo表:bio,bio,interests。

像这样的数据结构,每次查询的时候还要还原数据结构,就相对麻烦,而且也不能表现出最原始的面向对象的数据格式。


es,的数据结构:

    es是面向文档(document)的数据格式,和面向对象的数据格式是完全一致的,基于这样的结构,es可以做复杂的索引,全文检索,聚合查询等操作,意思就是不管你在面向对象里怎么嵌套,都可以在es中用一个文档来定义。

    es的文档格式是用json格式来定义的:

    用es来定义刚刚创建的对象:

{
	fristName:"夏",
	lastName:"文杰",
	email:"[email protected]",
	joinDate:"2018-01-01",
	info:{
		bio:"开朗",
		age:25,
		interests:["唱歌","跳舞"]
	},
}


猜你喜欢

转载自blog.csdn.net/a1148233614/article/details/80058924
今日推荐