新增文档
POST /my_doc/_doc/1 -> {索引名}/_doc/{索引ID}(是指索引在es中的id,而不是这条记录的id,比如记录的id从数据库来是1001,并不是这个。如果不写,则自动生成一个字符串。建议和数据id保持一致> )
{
"id": 1001,
"name": "name-1",
"desc": "desc value",
"create_date": "2020-01-01"
}
- 注:如果索引没有手动建立mappings,那么当插入文档数据的时候,会根据文档类型自动设置属性类型。这个就是es的动态映射,帮我们在index索引库中去建立数据结构的相关配置信息。
- “fields”: {“type”: “keyword”}
对一个字段设置多种索引模式,使用text类型做全文检索,也可使用keyword类型做聚合和排序 - “ignore_above” : 256
设置字段索引和存储的长度最大值,超过则被忽略
删除文档
DELETE /my_doc/_doc/1
- 注:文档删除不是立即删除,文档还是保存在磁盘上,索引增长越来越多,才会把那些曾经标识过删除的,进行清理,从磁盘上移出去。
修改文档
- 局部修改
POST /my_doc/_doc/1/_update
{
"doc": {
"name": "test_name"
}
}
- 全量替换
PUT /my_doc/_doc/1
{
"id": 1001,
"name": "test_name",
"desc": "test desc",
"create_date": "2020-01-02"
}
- 注:每次修改后,version会更改
查询文档
常规查询
GET /index_demo/_doc/1
GET /index_demo/_doc/_search
查询结果
{
"_index": "my_doc",
"_type": "_doc",
"_id": "2",
"_score": 1.0,
"_version": 9,
"_source": {
"id": 1002,
"name": "name-2",
"desc": "test desc",
"create_date": "2020-01-01"
}
}
元数据
- _index:文档数据所属那个索引,理解为数据库的某张表即可。
- _type:文档数据属于哪个类型,新版本使用_doc。
- _id:文档数据的唯一标识,类似数据库中某张表的主键。可以自动生成或者手动指定。
- _score:查询相关度,是否契合用户匹配,分数越高用户的搜索体验越高。
- _version:版本号。
- _source:文档数据,json格式。
定制结果集
GET /index_demo/_doc/1?_source=id,name
GET /index_demo/_doc/_search?_source=id,name
判断文档是否存在
HEAD /index_demo/_doc/1