(TOC)
<人力资源/>
1新建文档
1.1指定id
<代码>把my_blog/文章/1 { “id”: 1、 “标题”:“elasticsearch”, “posttime”:“2017-05-01”, “内容”:“elasticsearch经验!” }代码>
返回:
<代码> { :“_index my_blog”, “_type”:“文章”, “_id”:“1”, “_version”: 1、 “结果”:“创造”, " _shards ": { “总”:2 “成功”:1、 “失败”:0 }, “创建”:真的 }代码>
版本号会随着文档的更新自动递增。
引用>1.2不指定id
不指定id、es会自动生成,但是这时只能使用:
<代码> POST my_blog/文章 { “id”: 2 “标题”:“火花”, “posttime”:“2017-05-01”, “内容”:“火花是经验!” }代码>返回:
<代码> { :“_index my_blog”, “_type”:“文章”, :“_id AWagTCv8O1qbT1zqbREV”, “_version”: 1、 “结果”:“创造”, " _shards ": { “总”:2 “成功”:1、 “失败”:0 }, “创建”:真的 }代码>2获取文档
2.1普通获取
获取存在的文档:
<代码>得到my_blog//1条代码>返回:
<代码> { :“_index my_blog”, “_type”:“文章”, “_id”:“1”, “_version”: 1、 “发现”:没错, " _source ": { “id”:1、 “标题”:“elasticsearch”, “posttime”:“2017-05-01”, “内容”:“elasticsearch经验!” } }代码>获取不存在的文档:
<代码>得到my_blog//2条代码>返回:
<代码> { :“_index my_blog”, “_type”:“文章”, “_id”:“2”, “发现”:假的 }代码>2.2测试文档是否存在
使用头可以测试文档是否存在:
<代码>头my_blog/文章/1 200年好 头my_blog/文章/2 404 -未找到代码>2.3批量获取
不同指数不同类型:
<代码> _mget { “医生”:[ { :“_index my_blog”, “_type”:“文章”, “_id”: 1 }, { “_index”:“twitter”, “_type”:“推特”, “_id”: 2 } ] }代码>同一指数下不同类型:
<代码>得到my_blog/_mget { “医生”:[ { “_type”:“文章”, “_id”: 1 }, { “_type”:“文章”, “_id”: 2 } ] }代码>同一指数同一类型:
<代码>得到my_blog/文章/_mget { “医生”:[ {" _id ": 1}, {" _id ": 2} ] }代码>或:
<代码>得到my_blog/文章/_mget { “id”(1、2): }代码>3更新文档
es更新文档的原理为:先找到这个文档,删除旧的文档内容执行更新,更新完后再索引最新的文档。
先添加下面一份文档:
<代码>测试/type1/1 { “计数器”:1、 “标签”(“红”): }代码>3.1更新文档字段内容
给计数器的值增加4:
<代码>测试/type1/1/_update { "脚本":{ “内联”:“ctx._source。计数器+=params.count”, “朗”:“无痛”, " params ": { “数”:4 } } }代码>注一:命令中内联是执行的脚本,ctx是脚本语言中的一个执行对象,无痛是es内置的一种脚本语言,参数是参数集合。
注2:ctx对象除了可以访问<代码> _source 代码>之外,还可以访问<代码> _index 代码>,<代码> _type 代码>,<代码> _id 代码>,<代码> _version 代码>,<代码> _routing 代码>,<代码> _parent> 代码等字段;
引用>对标签字段增加一个值:
<代码>测试/type1/1/_update { "脚本":{ “内联”:“ctx._source.tags.add (params.tag)”, “朗”:“无痛”, " params ": { “标签”:“蓝色” } } }代码>3.2新增与移除字段
ElasticSearch常用操作:文档篇