elasticsearch的安装后期再补充,还有对应的elasticsearch-head 的插件
elasticsearch
restful接口使用方法
RESTful接口URL的格式:
其中index、type是必须提供的。
id是可选的,不提供es会自动生成。
index、type将信息进行分层,利于管理。
index可以理解为数据库;type理解为数据表;id相当于数据库表中记录的主键,是唯一的
文档索引的建立
返回的信息可以看到创建是成功的,并且版本号是1;ES会对记录修改进行版本跟踪,第一次创建记录为1,同一条记录每修改一次就追加1。
至此一条记录就提交到ES中建立了索引,注意HTTP的方法是PUT,不要选择错了
索引文档的更新
更新接口与创建接口完全一样,ES会查询记录是否存在,如果不存在就是创建,存在就是更新操作。
因此更新的时候与添加是一样的 要所有字段进行更新
增删改查分别对应:HTTP请求的PUT、GET、DELETE方法。PUT调用是如果不存在就是创建,已存在是更新。
查询文档
如果查询某一个索引下的数据可按下面风格来实现:
http://<ip>:<port>/<索引>/<类型>/<文档id>
ES的删除delete核心的参考这个
也可以参考这个地址对几种查询条件的理解
对should的理解可以参考
其他参考的地址
有的ES的删除不好使可能需要delete by query
参考网址
还看到这种更新方式
更新文档(类似mysql update操作)
http://localhost:9200/blog/ariticle/1/_update/ POST
{“script”:”ctx._source.content = ”new version 2.0 20160714”“}
更新后结果显示:
{
“_index”: “blog”,
“_type”: “ariticle”,
“_id”: “1”,
“_version”: 2,
“_shards”: {
”total”: 2,
“successful”: 1,
“failed”: 0
}
}
查询&验证更新后结果:(对比可知,版本号已经更新完毕)
{
- "_index": "blog",
- "_type": "ariticle",
- "_id": "1",
- "_version": 2,
- "found": true,
- "_source": {
- "title": "New version of Elasticsearch released!",
- "content": "new version 2.0 20160714",
- "tags": [
- "announce"
- ,
- "elasticsearch"
- ,
- "release"
- ]
- }
}
`![这里写图片描述](https://img-blog.csdn.net/20160717132407353)``
注意更新文档需要在elasticsearch_winconfigelasticsearch.yml下新增以下内容:
script.groovy.sandbox.enabled: true
script.engine.groovy.inline.search: on
script.engine.groovy.inline.update: on
script.inline: on
script.indexed: on
script.engine.groovy.inline.aggs: on
index.mapper.dynamic: true