2.1 RESFFul介绍
什么是restful?
传统方式:
URL 服务器上资源 http://localhsot:8080/save 访问的资源save(); http://localhsot:8080/update 访问的资源update(); http://localhsot:8080/delete 访问的资源delete(); http://localhsot:8080/find 访问的资源find();
Restful:表现层状态转移
HTTP的请求状态 URI 服务器上资源 Http的协议POST http://localhsot:8080/list 访问的资源save(); Http的协议PUT http://localhsot:8080/list 访问的资源update(); Http的协议DELETE http://localhsot:8080/list 访问的资源delete(); Http的协议GET http://localhsot:8080/list 访问的资源find();
2.2 安装Postman工具
Postman中文版是postman这款强大网页调试工具的windows客户端,提供功能强大的Web API & HTTP 请求调试。软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化。Postman中文版能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT,DELETE..),且可以附带任何数量的参数。
下载Postman工具
Postman官网:https://www.getpostman.com
课程资料中已经提供了安装包
双击安装完成后需要自行注册一个账号,这里就不演示了。
6.2.3 使用Postman工具进行Restful接口访问
ElasticSearch的接口语法
curl -X '://:/?' -d ''
案例:
curl -XPUT http://localhost:9200/blog/article/1 -d '{"title": "New version of Elasticsearch released!", content": "Version 1.0 released today!", "tags": ["announce", "elasticsearch", "release"] }'
参数解释如下:
参数 | 解释 |
---|---|
VERB | 适当的 HTTP 方法 或 谓词 : GET、 POST、 PUT、 HEAD 或者 DELETE。 |
PROTOCOL | http 或者 https(如果你在 Elasticsearch 前面有一个 https 代理) |
HOST | Elasticsearch 集群中任意节点的主机名,或者用 localhost 代表本地机器上的节点。 |
PORT | 运行 Elasticsearch HTTP 服务的端口号,默认是 9200 。 |
PATH | API 的终端路径(例如 _count 将返回集群中文档数量)。Path 可能包含多个组件,例如:_cluster/stats 和 _nodes/stats/jvm 。 | | QUERY_STRING | 任意可选的查询字符串参数 (例如 ?pretty 将格式化地输出 JSON 返回值,使其更容易阅读) | | BODY | 一个 JSON 格式的请求体 (如果请求需要的话) | |
(1)创建映射
请求URL:
PUT http://localhost:9200/blog2
请求体:
{ "mappings": { "article": { "properties": { "id": { "type": "long", "store": false, "index":"not_analyzed" }, "title": { "type": "text", "store": false, "index":"analyzed", "analyzer":"ik_smart" }, "content": { "type": "text", "store": false, "index":"analyzed", "analyzer":"ik_smart" } } } } }
注意:
“analyzer”:“standard”:表示单字分词(默认值)
“analyzer”:“ik_smart”:使用ik分词器(ik的最小切分)
“store”: true:表示是否存储,只有存储到索引库,才能检索到结果(Elasticsearch的默认值flase)
关键字高亮实质上是根据倒排记录中的词项偏移位置,找到关键词,加上前端的高亮代码。这里就要说到store属性,store属性用于指定是否将原始字段写入索引,默认取值为no。如果在Lucene中,高亮功能和store属性是否存储息息相关,因为需要根据偏移位置到原始文档中找到关键字才能加上高亮的片段。在Elasticsearch,因为_source中已经存储了一份原始文档,可以根据_source中的原始文档实现高亮,在索引中再存储原始文档就多余了,所以Elasticsearch默认是把store属性设置为no。
示例如下:
Elasticsearch-head
(2)删除索引
请求URL
DELETE http://localhost:9200/blog2
Postman如下:
elasticsearch-head查看:
(3)创建文档document
把上面的映射重新创建一次,然后再执行创建文档
创建文档URL:
POST http://localhost:9200/blog2/article/1
请求体数据:
{ "id":1, "title":"ElasticSearch是一个基于Lucene的搜索服务器", "content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够时搜索。" }
Postman如下:
elasticsearch-head查看:
(4)修改文档对象Document
请求URL:
http://localhost:9200/blog2/article/1
请求体:
{ "id":1, "title":"ElasticSearch是一个基于Lucene的搜索服务器-深圳黑马训练营", "content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够时搜索。" }
Postman如下:
elasticsearch-head查看:
(5)删除文档Document
请求URL:
DELETE http://localhost:9200/blog2/article/1
Postman如下:
(6)查询文档-根据id查询
请求URL:
GET http://localhost:9200/blog2/article/1
Postman如下:
(7)查询文档-querystring查询
请求url:
POST http://localhost:9200/blog2/article/_search
请求体:
{ "query": { "query_string": { "default_field": "title", "query": "搜索服务器" } } }
Postman如下:
(8)查询文档-term查询
请求URL:
POST http://localhost:9200/blog2/article/_search
请求体:
{ "query": { "term": { "title": "搜索" } } }
Postman如下:
properties RESTful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
properties 使用Postman可以创建索引映射、删除索引映射、根据ID查询索引数据、删除索引数据、字符串查找数据、词项查找数据等。