ElasticSearch文档定义
当ElasticSearch创建索引好之后,就可以来创建文档了,并且添加数据进去,这里的文档可以类比成关系型数据库的数据表。
Elasticsearch文档就是类似于对象的概念,里面存储很字段和值,值可以是字符串、数字、时间等类型。
ElasticSearch文档格式
文档是以JSON格式存储在Elasticsearch,格式如下:
{ "first_name": "mike", "last_name": "chen", "info": { "interests": [ "running", "books" ] } }
使用Json作为文档序列化格式,Json目前已经被大多语言支持,并且成为NoSQL领域的标准格式,具有简洁易读的特点。
ElasticSearch文档属性
一个文档不仅仅包含它的数据,也包含了元数据,ElasticSearch中有三个较为重要的元素分别是。
1._index
索引类似关系型数据口中的数据库,存储和索引数据的地方。
2._type
type可以理解成关系型数据库中的表,表内存储的对象有着相同的结构,表示一类相似的文档。
3._id
id时文档的唯一表示,由ElasticSearch自动生成。
ElasticSearch文档操作
1.ElasticSearch新建文档
新建文档首先要新建一个索引,可以通过 PUT来创建索引。
比如:
PUT http://localhost:9200/blog
然后开始新建文档,相当于关系式数据库里的:创建了数据库->创建表(ElasticSearch文档)。
PUT blog/_doc/1 { "title":"添加文档", "content":"mikechen的互联网架构" }
PUT中的“1”是添加的文档的id,若数据没有自然ID,则可使用POST请求方法。
POST blog/_doc { "title":"添加文档", "content":"mikechen的互联网架构"
2.ElasticSearch获取文档
查看文档时,需要指明文档的唯一性标识,就好像我们在用MySQL中数据的主键查询。
命令:
GET http://127.0.0.1:9200/shopping/_doc/1
结果:
"_index": "shopping", "_type": "_doc", "_id": "1", "_version": 2, "_seq_no": 2, "_primary_term": 2, "_source": { # 文档信息 "category": "架构", "url": "https://mikechen.cc" }
3.ElasticSearch更新文档
直接重新PUT,即可更新。
比如:
POST /info/teacher/ { "name":"mikechen", "category":"架构", }
直接put会替换整个文档的内容,将原有的数据内容覆盖,这就是修改更新文档。
更新文档,ES内部操作顺序如下:
从旧文档中检索JSON 修改它 删除旧文档 索引新文档
4.ElasticSearch删除文档
采用DELETE 命令,即可删除。
比如:
DELETE http://127.0.0.1:9200/shopping/_doc/1
指定文档id,删除ElasticSearch文档。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》