搜索引擎Elasticsearch REST API学习

   Elasticsearch为开发者提供了一套基于Http协议的Restful接口,只须要构造rest请求并解析请求返回的json便可实现访问Elasticsearch服务器。Elasticsearch的API接口功能丰富,包含集群、监控、部署管理等,也包含经常使用的文档、索引操做,本文主要是使用Postman工具对文档操做相关的api作学习记录。html

新增文档

PUT方式:http://localhost:9200/store/product/1  //指定id,存在则更新,不存在则新增json

POST方式:http://localhost:9200/store/product   //自动生成idapi

其中store表示Index,product表示Type,数字1表示的是Document(文档)的主键,主键能够是任意的形式,也能够不指定主键,Elasticsearch将会自动生成一个惟一主键,可是必须是post方式提交请求。服务器

测试:restful

返回结果中_id:自动生成的主键,_shards:表示分区信息,total:2表示有两个分区,successful:1 表示成功赋值了一份。_version:1表示该文档的版本号,每修改一次,版本号都会自增。并发

Elasticseach-head中查看数据:elasticsearch

根据主键查询

GET方式:http://localhost:9200/store/product/nMWgs2UBQISnN0EoTXZL   Elasticserach提供的是restful api,很容易理解这个接口形式。ide

返回结果中_source表示返回的Doucment(文档)类容,其余几个是Elasticsearch文档结构字段。若是只须要_source内容不须要其余结构字段,还能够在请求url上加上属性”/_source”,将只返回source部分容,请求:http://localhost:9200/store/product/1/_source工具

根据主键更新文档

在 Elasticsearch 中文档是 不可改变 的,不能修改它们。若是想要更新现有的文档,须要 重建索引或者进行替换,更新接口同新增文档接口,使用/index/type/key的形式。Elasticsearch的实现方式是将旧的文档标记为删除,并增长一个全新的文档。标记为删除的文档将再也不能够直接操做,但它并不会当即消失,Elasticsearch会在后台清理这些已标记为删除的文档。post

若是明确知道修改文档的哪部分数据,还能够经过在上述请求URL后面添加“/_update”并使用POST的方式,来更新数据,虽然这个看上去像是直接更新的,实际上也是从新建立了一个新的文档,处理过程为是先从就的文档中构建Json数据,并根据请求修改的字段修改json数据,而后将就文档标记为删除,添加一个新文档。请求以下:

若是并发修改文档,可使用version字段实乐观锁,修改的目标文档的版本号version和传入的不一致,则会修改失败,请求url:http://localhost:9200/store/product/1/_update?version=4

根据主键删除

使用DELETE方式,请求格式 host/index/type/key

搜索文档

Elasticsearch提供了强大的搜索功能,搜索参数能够放在请求url上,也能够放在body中,请求基本格式: host/index/type/_search

  1. GET方式+ url参数的方式进行全文搜索

返回结果中_score是搜索引擎的概念,表示相关度,分数越高表示此文档与搜索条件关键字的匹配程度越高。

 

   2. 使用match表达式进行全文搜索

   3. elasticsearch也支持分页查询,使用from和size两个参数指定页码和页大小便可。

更详细的说明参考官方文档:

中文文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

英文文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html

相关文章
相关标签/搜索