一、文档增删改查及局部更新

### --- 文档增删改查及局部更新

~~~ 文档,即索引库中的数据,会根据规则创建索引,将来用于搜索。
~~~ 可以类比做数据库中的一行数据。
### --- 新增文档

~~~ 新增文档时,涉及到id的创建方式,手动指定或者自动生成。
~~~ 新增文档(手动指定id)

二、创建文档:手动指定ID

### --- 语法

~~~ # 语法
POST /索引名称/_doc/{id}
### --- 创建文档:手动指定id

~~~ # 创建示例
POST /yanqi-company-index/_doc/1
{
"name" : "百度",
"job" : "小度用户运营经理",
"payment" : "30000",
"logo" :
"chrome://new-tab-page/icons/google_logo.svg"
}

POST /yanqi-company-index/_doc/2
{
"name" : "百度",
"job" : "小度用户运营经理",
"payment" : "30000",
"logo" :
"chrome://new-tab-page/icons/google_logo.svg",
"address":"北京市昌平区"
}

POST /yanqi-company-index/_doc/3
{
"name1" : "百度",
"job1" : "小度用户运营经理",
"payment1" : "30000",
"logo1" :
"chrome://new-tab-page/icons/google_logo.svg",
"address1":"北京市昌平区"
}

|NO.Z.00015|——————————|BigDataEnd|——|Hadoop&ElasticSearch.V15|——|ELK.v15|集群|索引管理|文档增删改查及局部更新.V1|_ico

三、创建文档:自动生成ID

### --- 新增文档(自动生成id)

~~~ # 语法
POST /索引名称/_doc
{
"field":"value"
}
### --- 创建示例:自定生成id
~~~ 可以看到结果显示为: created ,代表创建成功。
~~~ 另外,需要注意的是,在响应结果中有个_id 字段,这个就是这条文档数据的唯一标识,
~~~ 这个_id作为唯一标示,这里是Elasticsearch帮我们随机生成的id。

~~~ # 示例
POST /yanqi-company-index/_doc/
{
"name" : "百度",
"job" : "小度用户运营经理",
"payment" : "30000",
"logo" :
"chrome://new-tab-page/icons/google_logo.svg"
}

|NO.Z.00015|——————————|BigDataEnd|——|Hadoop&ElasticSearch.V15|——|ELK.v15|集群|索引管理|文档增删改查及局部更新.V1|_chrome_02


二、查看单个文档

### --- 查看单个文档语法
### --- 文档元数据解读:

~~~ # 语法
~~~ GET /索引名称/_doc/{id}
~~~ # 示例
~~~ GET /yanqi-company-index/_doc/1

|NO.Z.00015|——————————|BigDataEnd|——|Hadoop&ElasticSearch.V15|——|ELK.v15|集群|索引管理|文档增删改查及局部更新.V1|_ico_03

元数据项

含义

_index

document所属index

_type

document所属type,Elasticsearch7.x默认type为_doc

_id 

代表document的唯一标识,与index和type一起,可以唯一标识和定位一个document

_version

document的版本号,Elasticsearch利用_version (版本号)的方式来

确保应用中相互冲突的变更不会导致数据丢失。需要修改数据时,

需要指定想要修改文档的version号,如果该版本不是当前版本号,请求将会失败

_seq_no

严格递增的顺序号,每个文档一个,Shard级别严格递增,

保证后写入的Doc seq_no大于先写入的Doc的seq_no

_primary_term

primary_term也和seq_no一样是一个整数,每当Primary Shard发生重新分配时,

比如重启,Primary选举等,_primary_term会递增1

found

true/false,是否查找到文档

_source

存储原始文档

|NO.Z.00015|——————————|BigDataEnd|——|Hadoop&ElasticSearch.V15|——|ELK.v15|集群|索引管理|文档增删改查及局部更新.V1|_ico_04



三、查看所有文档

### --- 查看所有文档语法

~~~ # 语法
POST /索引名称/_search
{
"query":{
"match_all": {
}
}
}
### --- 创建示例

~~~ # 示例
POST /yanqi-company-index/_search
{
"query":{
"match_all": {
}
}
}

四、_source定制返回结果

### --- _source定制返回结果
### --- 查看示例:GET /yanqi-company-index/_doc/1?_source=name,job

~~~ 某些业务场景下,我们不需要搜索引擎返回source中的所有字段,
~~~ 可以使用source进行定制,如下,多个字段之间使用逗号分隔

|NO.Z.00015|——————————|BigDataEnd|——|Hadoop&ElasticSearch.V15|——|ELK.v15|集群|索引管理|文档增删改查及局部更新.V1|_chrome_05


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart

                                                                                                                                                   ——W.S.Landor