ES基本操作
Mappings自定义创建映射
创建mapping
接口地址:http://es_service_addr/索引名称
请求方式:put
body:
{
"mappings": {
# 属性
"properties": {
# 字段
"realname": {
"type": "text",
"index": true # index表示是否需要索引,true表示需要(默认),false表示不需要索引,需要索引就表示会被分词
}
}
}
}
mapping一旦创建,就不能够在修改。如果需要修改,要把现有的索引删除,重新添加。 如果需要添加,可以post访问:http://es_service_addr/索引名称/_mapping, 参数格式同上面相同,注意增加需要去掉mappings,直接写properties。
响应
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "index_mapping"
}
分析是否分词
接口地址:http://es_service_addr/索引名称/_analyze
请求方式:GET
body:
{
"field": "realname", # 分析的字段
"text": "我爱我的祖国" # 分析字段对应的值
}
响应:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "<IDEOGRAPHIC>",
"position": 0
},
{
"token": "爱",
"start_offset": 1,
"end_offset": 2,
"type": "<IDEOGRAPHIC>",
"position": 1
},
{
"token": "我",
"start_offset": 2,
"end_offset": 3,
"type": "<IDEOGRAPHIC>",
"position": 2
},
{
"token": "的",
"start_offset": 3,
"end_offset": 4,
"type": "<IDEOGRAPHIC>",
"position": 3
},
{
"token": "祖",
"start_offset": 4,
"end_offset": 5,
"type": "<IDEOGRAPHIC>",
"position": 4
},
{
"token": "国",
"start_offset": 5,
"end_offset": 6,
"type": "<IDEOGRAPHIC>",
"position": 5
}
]
}
默认是支持英文的分词,所以上面的返回值把中文拆解成了单独的汉字,如果要使用英文可以去做拓展。
文档的基本操作
添加文档与自动映射
创建文档
接口地址:http://es_service_addr/my_doc/_doc/1
my_doc:索引名称
_doc: 操作类型
1:ES主键
body:
{
"id": 1001,
"name": "no-1",
"desc": "we are number one",
"create_date": "2021-01-05"
}
响应:
{
"_index": "my_doc",
"_type": "_doc",
"_id": "ulVN03YBVWKanGeCxsTB",
"_version": 1,
"result": "created",
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
删除文档内的数据
接口地址: http://es_service_addr/my_doc/_doc/1
访求方式:delete
解析: 表示删除索引my_doc下的_id=1的文档数据
删除操作其实不是物理删除,实际上是逻辑删除,通过添加逻辑标识符来判断是否删除,当磁盘数据过载后,才会去删除被标记为删除的数据
修改文档数据
接口地址: http://es_service_addr/my_doc/_doc/1/_update
请求方式:post
解析: 修改索引为my_doc数据_id=1的文档数据内容
body:
{
"doc": {
"name":"abc"
}
}
这种对某个字段数据进行局部的修改,实际上在ES底层是将数据重新写了一次,并不是对这个字段修改了一下。我们自己也可以添加一个全字段的数据,ID与原来的相同,这样也可以做到更新数据的作用。
查询文档数据
请求方式:GET
请求地址:http://es_service_addr/my_doc/_doc/1?_source=id,name
解析:查询文档_doc下索引my_doc,索引_id=1的数据,并且只查询id和name这两个字段的数据
查询所有数据的id和name
http://es_service_addr/my_doc/_doc/_search?_source=id,name
判断查询数据是否存在
请求方式 | HEAD |
---|---|
请求地址 | http://es_service_addr/my_doc/_doc/1 |
如果请求状态码返回200,表示数据存在,请求状态码返回404,表示数据不存在