elasticsearch的安装后期再补充,还有对应的elasticsearch-head  的插件


elasticsearch

restful接口使用方法

   RESTful接口URL的格式:

   http://localhost:9200///[]

  其中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核心的参考这个

也可以参考这个地址对几种查询条件的理解

https://knight-black-bob.iteye.com/blog/2262586

对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

}

}

查询&验证更新后结果:(对比可知,版本号已经更新完毕)  

http://localhost:9200/blog/ariticle/1/

{

- "_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"

- ]

- }

}

注意更新文档需要在elasticsearch_win\config\elasticsearch.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

梅花香自古寒来