七初SEO网站建设网页制作教程案例

当前位置: 首页 > news >正文

七初SEO网站建设,网页制作教程案例,最正规二手手表平台,天津市工程建设项目报建网站es的核心概念主要是#xff1a;index(索引)、Document(文档)、Clusters(集群)、Node(节点)与实例#xff0c;下面我们先来了解一下Document与Index。 RESTful APIs 在讲解Document与Index概念之前#xff0c;我们先来了解一下RESTful APIs#xff0c;因为下面讲解Documen…es的核心概念主要是index(索引)、Document(文档)、Clusters(集群)、Node(节点)与实例下面我们先来了解一下Document与Index。 RESTful APIs 在讲解Document与Index概念之前我们先来了解一下RESTful APIs因为下面讲解Document和Index的时候会使用到。 当我们把es服务器启动起来之后要怎么调用呢 其实很简单es提供了基于HTTP协议的RESTful APIS,也就是说我们可以通过向es服务器发送HTTP请求来操作es服务器如对文档读写、查询文档API、搜索API、索引的创建与删除es默认使用9200端口接收HTTP请求。 所以调用es很简单我们甚至可以使用命令行工具curl来调用es比如下面的代码中我们使用curl向es发送PUT请求在request body携带JSON格式的数据传给es服务器

使用curl调用es创建一个文档

curl http://localhost:9200/my_test/1 -H Content-Type:application/json
-X POST -d {uid:1,username:test}下面的图片演示向es发送请求与es服务器响应的过程 不过一般我们可以通过Kibana来管理es而Kibana中的Dev Tools可以让我们更加方便地使用各种es的RESTful API下面是我们在Kibana中Dev Tools使用的语句结构其实作用与上面使用curl一样我们在下面的演示会使用这种格式。 PUT /my_test/_doc/1 {uid:1,username:test }其实为了方便不同编程语言的调用es提供多种编程语言的类库(Java,PHP,Ruby,Go,Python,JavaScript,NET等)但这些编程语言是基于es提供的RESTful APIs的封装。 文档(Document) es是面向文档的文档是es中可搜索的最小单位es的文档由一个或多个字段组成类似于关系型数据库中的一行记录但es的文档是以JSON进行序列化并保存的每个JSON对象由一个或多个字段组成字段类型可以是布尔数值字符串、二进制、日期等数据类型。 es每个文档都有唯一的id,这个id可以由我们自己指定也可以由es自动生成。 文档的元数据 es每一个文档除了保存我们写入进行的文档原始数据外也有文档自己的元数据这些元数据用于标识文档的相关信息。 下面是一个普通的es文档 {_index : test_logs2,_type : _doc,_id : 1,_version : 1,_seq_no : 0,_primary_term : 1,found : true,_source : {uid : 1,username : test} }从上面的文档中我们可以看文档的元数据字段如下 _index文档所在索引名称_source原始json数据_type文档所属类型es7.0以后只有为 _doc_version文档版本,如果对文档进行修改则该字段会增加_score相关性打分id文档唯一id 下面我们来了解es通过RESTful Api提供了文档的CURD等操作 Create 通过es的RESTful API,使用HTTP的PUT方法可以在某个索引中创建一个文档在Kibana的Dev Tools中我们可以使用下面的语句创建一个文档

在my_test索引中创建一个文档

PUT /my_test/_create/1 {uid:1,username:one }Index 在es中索引大概有以下三种含义与作用 1. 动词es中一种创建文档的方式就是现在讲到的。 2. 名词es组织文档的方式下面会讲到。 3. 动词对文档的字段进行分词并存储以后会讲到

使用Index的方式

PUT /my_test/_doc/1 {uid:1,username:test }Index的方式与Create一样用于创建一个es文档不同的是使用Index创建文档时如果指定的文档id已经存在则会删除原文档并重新创建一个文档并且文档的字段_version会加1 Update 更新一个文档的数据使用的是HTTP的POST方法而且修改的字段信息还必须在doc中如下 使用Update的方式是直接更新数据这点与使用Index创建文档文档存在时会删除文档再重新创建是不同的。

更新

POST /my_test/_doc/1 {doc:{username:this is a document} }Delete 使用HTTP中DELETE方法可以删除一个es的文档示例如下

删除文档

DELETE /my_test/_doc/1Read 读取一个es文档就很简单了使用HTTP的GET方法就可以了如下 读取 GET /my_test/_doc/1Bulk Api 上面的讲的对关于文档的Index,Create,Update,Delete等操作但每一次只能对一个索引的一个文档进行操作而我们知道每一次请求服务器进行操作时网络请求往返时间的开销是一个很大的消耗如果每个请求都只做一个操作那么就有点太浪费了。 所以es的文档的bulk api支持在一次请求中同时对不同索引中的文档进行Index,Create,Update,Delete等操作也就是所谓的批量处理在处理过程即便其中某个操作出错也不会影响其他操作如下 POST _bulk {create:{_index:my_test2,_id:4}}
{uid:2,username:333333333333333333} {index:{_index:my_test2,_id:10}} {uid:10,username:tttt} {delete:{_index:my_test2,_id:1}} {update:{_index:my_test2,_id:2}} {doc:{uid:2,username:hhhhhhhhhhhhhhhhh}}上面只是bulk api的简单示例如果要熟悉语法还是要多看看es的官方文档。 索引(Index) es索引是es组织文档的方式是拥有相结构文档的集合可以把es的索引类比为关系型数据库的一张数据表。 下面我们来看看对索引的各种操作的RESTful APIs如下 Create 使用HTTP的PUT方法便可以创建一个索引在Kibna的Dev Tools使用下面的语句便可创建一个索引 PUT /my_test 在创建索引时也指定mapping和setting如下 PUT /my_test {settings : {index : {number_of_shards : 3, number_of_replicas : 2 }} }Exists 可以使用HTTP的HEAD方法判断索引是否存在如下

判断索引是否存在

HEAD /my_test如果索引存在则http状态码返回200如果不存在则返回404。 Get 使用HTTP的GET方法可以获取索引的setting和mapping等信息如下 GET /index返回如下的结果 {my_test : {aliases : { },mappings : { },settings : {index : {creation_date : 1564757617415,number_of_shards : 1,number_of_replicas : 1,uuid : z6zGhu_ERA-R1c0m2fQrvg,version : {created : 7020099},provided_name : my_test}}} }Delete es中删除的索引API允许我们删除已经存在的索引有以下几种情况 使用索引名删除单个或多个索引

删除my_test

DELETE /my_test# 删除多个索引,用逗号分隔 DELETE /my_test,my_test1,my_test2使用通配符*删除多个索引(慎用)

删除以my_test为前缀的索引

DELETE /my_test*使用_all删除es服务器上的全部索引

删除全部索引

DELETE /_all注意这种操作非常危险不推荐使用如果想禁用这种操作可在在es的config/elasticsearch.yml中将参数action.destructive_requires_name设置为true如 action.destructive_requires_nametrue 这样的话则不能执行以上的操作了。 小结 文档和索引是es中最基础也是最核心的概念熟悉对掌握文档和索引的操作是进一步学习es的基础其实如果你有关系型数据库的知识可以把索引类比为数据库中的数据表而文档可以理解为数据表中的一行记录。