ElasticSearch学习目录:
ElasticSearch客户端操作
实际开发中,主要有三种方式可以作为elasticsearch服务的客户端:
第一种,elasticsearch-head插件
第二种,使用elasticsearch提供的Restful接口直接访问(可以使用第三方工具,这里使用Postman工具)
第三种,使用elasticsearch提供的API进行访问
ElasticSearch的接口语法:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
参数 | 解释 |
---|---|
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 格式的请求体 (如果请求需要的话) |
ES Restful API 中的VERB
参数 | 作用 |
---|---|
GET | 获取请求对象的当前状态 |
POST | 改变对象的当前状态 |
PUT | 创建一个对象 |
DELETE | 销毁对象 |
HEAD | 请求获取对象的基础信息 |
创建索引index和映射mapping
请求url:PUT localhost:9200/blog1
请求体:
{
"mappings": {
"hello": {
"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"
}
}
}
}
}
通过head中的复合查询创建:
通过postman创建:
在head插件中查看索引信息:
创建索引后设置Mapping
直接使用put方法创建一个没有设置请求体的索引,然后设置mapping信息
请求的url:POST http://localhost:9200/blog2/hello/_mapping
{
"hello": {
"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"
}
}
}
}
通过head插件中的复合查询创建:
通过postman创建:
删除索引index
请求url:DELETE http://localhost:9200/blog1
直接在head插件中删除:
通过head插件符合查询删除:
通过postman删除:
创建文档document
请求url:POST http://localhost:9200/blog1/hello/1
请求体:
{
"id":1,
"title":"文档1",
"content":"文档1内容"
}
通过head插件复合查询创建文档:
通过postman创建文档:
在head插件中查看:
修改文档document
请求url:POST http://localhost:9200/blog1/hello/1
请求体:
{
"id":1,
"title":"修改后的文档1",
"content":"修改后的文档1内容"
}
通过head插件中的复合查询修改文档:
通过postman修改文档:
在head插件中查看:
删除文档document
请求url:DELETE http://localhost:9200/blog1/hello/1
通过head插件中的复合查询删除文档:
通过postman删除文档:
查询文档
首先先在blog1中创建文档:
查询文档-根据id查询
请求url:GET localhost:9200/blog1/hello/1
通过head插件的复合查询查询文档:
通过postman查询文档:
查询文档-term查询
请求url:POST http://localhost:9200/blog1/hello/_search
请求体:
{
"query": {
"term": {
"title": "文"
}
}
}
通过head插件中的复合查询查询文档:
通过postman查询文档:
查询文档-querystring查询
请求url:POST http://localhost:9200/blog1/hello/_search
请求体:
{
"query": {
"query_string": {
"default_field": "title",
"query": "文档"
}
}
}
通过head插件中的复合查询查询文档:
通过postman查询文档:
head插件查询: