实际开发中,主要有三种方式能够做为elasticsearch服务的客户端:
第一种,elasticsearch-head插件(可视化工具)java
第二种,使用elasticsearch提供的Restful接口直接访问(仅仅用户学习测试)node
第三种,使用elasticsearch提供的API进行访问,使用JavaAPI去访问ES!(实际开发)web
Postman中文版是postman这款强大网页调试工具的windows客户端,提供功能强大的Web API & HTTP 请求调试。软件功能很是强大,界面简洁明晰、操做方便快捷,设计得很人性化。Postman中文版可以发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),且能够附带任何数量的参数。json
Postman官网:https://www.getpostman.com
windows
curl ‐X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' ‐d '<BODY>
其中:api
参数 | 解释 |
---|---|
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 格式的请求体 (若是请求须要的话) |
请求url:服务器
PUT localhost:9200/blog1
请求体:restful
若是ES的版本不一样,那么如下的请求题须要同步更新~~~~,新版本ES改动比较大。可是JavaAPI的使用方式没什么变化~
{ "mappings": { "article": { "properties": { "id": { "type": "long", "store": true, "index":"not_analyzed" }, "title": { "type": "text", # 字段类型 "store": true, # 是否在索引中存贮 "index":"analyzed", # 是否须要被索引 "analyzer":"standard" # 标准分词器 内置的 }, "content": { "type": "text", "store": true, "index":"analyzed", "analyzer":"standard" } } } } }
postman截图:
elasticsearch-head查看:
app
咱们能够在建立索引时设置mapping信息,固然也能够先建立索引而后再设置mapping。
在上一个步骤中不设置maping信息,直接使用put方法建立一个索引,而后设置mapping信息。
请求的url:curl
POST http://127.0.0.1:9200/blog2/hello/_mapping
请求体:
{ "hello": { "properties": { "id":{ "type":"long", "store":true }, "title":{ "type":"text", "store":true, "index":true, "analyzer":"standard" }, "content":{ "type":"text", "store":true, "index":true, "analyzer":"standard" } } } }
PostMan截图
请求url:
DELETE localhost:9200/blog1
postman截图:
elasticsearch-head查看:
请求url:
POST localhost:9200/blog1/article/1
请求体:
{ "id":1, "title":"ElasticSearch是一个基于Lucene的搜索服务器", "content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,可以达到实时搜索,稳定,可靠,快速,安装使用方便。" }
postman截图:
elasticsearch-head查看:
请求url:
POST localhost:9200/blog1/article/1
请求体:
{ "id":1, "title":"【修改】ElasticSearch是一个基于Lucene的搜索服务器", "content":"【修改】它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,可以达到实时搜索,稳定,可靠,快速,安装使用方便。" }
postman截图:
elasticsearch-head查看:
请求url:
DELETE localhost:9200/blog1/article/1
postman截图:
elasticsearch-head查看:
请求url:
GET localhost:9200/blog1/article/1
postman截图:
请求url:
POST localhost:9200/blog1/article/_search
请求体:
{ "query": { "query_string": { "default_field": "title", "query": "搜索服务器" } } }
postman截图:
注意:
将搜索内容"搜索服务器"修改成"钢索",一样也能搜索到文档,该缘由会在下面讲解中获得答案
{ "query": { "query_string": { "default_field": "title", "query": "钢索" } } }
请求url:
POST localhost:9200/blog1/article/_search
请求体:
{ "query": { "term": { "title": "搜索" } } }
postman截图:
term是表明彻底匹配,也就是精确查询,搜索前不会再对搜索词进行分词,因此咱们的搜索词必须是文档分词集合中的一个。