00:00
讲解ES软件基本操作之前,先给同学们介绍几个相关的概念。首先官网上对ES有这样的描述,Elastic search呢?它支持分布式restful风格的搜索和分析,那么这就表示elastic search呢?它允许采用restful风格的方式发请求,进行软件的访问。它其实就是一种特定互联网软件的架构原则,这个原则我们称之为叫rest原则。Re呢,其实是几个单词的缩写,它表示资源状态转换,就是说我们在请求的资源呢,其实是有状态的,而这个状态呢,会根据一些原则进行改变和转换,符合这个原则的软件架构,我们就称之为叫rest风格的架构。可能概念上啊,有点抽象,同学们不好理解。其实我们的HTTP协议就遵循了rest原则,比如在web中,资源的唯一标识是U。我们叫统一资源路径,我们可以在浏览器中输入这个路径来定位网上的资源,比方说http local host。
01:07
然后9200,然后呢,我们写上test,我们叫test好了,这个路径呢,其实就是可以称为网络上的一个资源,是这个路径中是不应该包含对资源的操作的,比方说增加呀,修改路径中是不应该存在的。那么我们的of风格呢,它的架构中就要求我们要遵循统一的接口原则,统一接口啊,就包含了一组受限制的预定义的操作,不论什么样的资源,都应该通过使用相同的接口对资源进行访问,那么这里的接口应该符合标准的HTTP的方法,比方说我们的get,诶的请求,还有我们的post请求,这个在我们we部开发当中,我们表单提交通常会有这两个请求,那么这两个是标准的HTTP的方法,那么除了这两个以外还有什么呢?Put,还有我们的delete,还有我们的head还有很多啊,很多啊,那么我们就需要遵循一些方法,那也就意味着我们的路径,它是资源的定位。
02:07
我们的方法是对资源的操作,那这样的话就好了,那如果按照我们HTTP的方法呢,它来暴露咱们的资源,那么我们的接口就会将具有安全性和密等性的特性,比方说我们的get和我们的head啊,它的请求都是安全的,无论你请求多少次,都不会改变服务器资源的状态。而我们的这个get head,还有那个叫做什么put be delete,其实他们的请求都是幂等性的,就是说你无论对资源操作了多少次,结果总是一样的啊,后面的请求并不会比第一回请求产生更多的影响啊,你put的时候,你插入的东西永远是相同的,但是你的post它就不是密等性的,这个咱们后面会给大家讲啊,所以啊,当我们采用rest风格向ES软件发出请求之后,ES软件就会返回响应,那么它的返回响应的数据格式呢,是一个叫接省格式,其实我们可以在请求体当中也发送符合接省格式的字符串发给服务器,那服务器拿到以后也可以做相应的处理,所以我们ES软件它的数据发送和数据的返回其实都是以杰森为标准格式的,那好,我们接下来把杰森也简单的说一下,贝的杰森呢,其实它是几个。
03:26
字母的或者叫单词的缩写叫Java script,然后呢,Object,它表述的是一种特殊标记的javascript对象,在我们的javascript这门语言当中,它其实表现对象有很多种方式,其中有一个比较简单的表述方式,我们叫object,等于什么划括号。当你把这个花括号给一个变量的时候,这个变量已经是个对象了,这个就叫特殊标记,但是你光有对象是不够的,那对象中如果有属性怎么办?比方说有一个name属性,那我就需要用双引号把它包含起来,这叫属性。那么你的属性值呢?哎,我们给个冒号,给一个双引号,咱们叫张三,这样的话呢,属性名和属性值之间用冒号隔开,如果属性值是我们字符串,也用双引号给它包起来。
04:19
那如果有多个属性怎么办?比方说年龄,年龄的名称我们也要用双引号,然后呢,我们再写个30,因为我们的年龄30呀,它并不是我们字符串,所以不需要加双引号,你这样的话就表述了一个最基本的接身的一个对象。但是那老师,那如果对象和对象之间有嵌套,有关联怎么办?比方说现在这个对象表示一个用户,那么如果用户它里面会有一些别的信息怎么办?比方说他的详细信息,大家看来。我们叫做info,详细信息后呢,再写个画括号,如果你还关联到别的对象了,可以在嵌套使用画括号,那比方说我们写上啊,咱们叫email,哎,你的详细信息当中包含了我们的email信息,这样的话呢,我们可以把它列出来。
05:06
这是就是一种嵌套嘛,对象的嵌套,这个我相信这主要大家能明白,基本的格式,我们这个里面的东西不难理解,好我刚才说的是一个对象,那如果想表示一个集合也可以,那么很简单了,集合呢,就表述的是用中括号来表示,那比方说把那个对象放进去,那样的话我就集合中就有一个对象了,那如果有多个对象呢,用逗号隔开,你这么写就行了。这种格式啊,我们就称之为叫Jason格式,但是我们会发现呢,这种格式啊,其实我们现在应用在很多的软件当中,为什么呢?按理说这个不应该是javascript当中的吗?哎,主要是因为这种格式呀,它更容易把它转换成一个字符串,那么然后呢,在网络中传递,你要记住网络中是传不了对象的,比方说你Java当中有一个叫new,我们叫object,这个你没有办法在网络中传递,你只能把它序列化,通过网络传递对方呢,再去反序列化,这样的话就会稍微显得有点麻烦,那如果我们能把这样格式的内容转换成字符串,那它不也就能够在网络中传递了吗?而且识别起来会更加容易。
06:14
大家想是这样的吗?所以啊,我们的这种Jason呢,在很多的软件,很多的框架当中都在使用啊,这个需要大家注意一下啊,我们ES软件它的数据格式的存储,其实用的就是我们的接省格式,那这里呢,我们简单的总结一下所谓的JA省字符串啊,接省字符串什么意思?它指的是网络中,网络中它传递的字符串的格式,它符合我们的Jason格式,我们把这样的字符串就统称为叫T字符串好不好?同学们这概念明白了,我们后面来演示操作就更加容易了啊。
我来说两句