该 API 在一个特定的索引上添加、更新一个类型化的 JSON 文档,让它能够被检索。下面的例子中插入一个 ID 为 1的 json 文档到 “twitter” 索引,_doc 类型之下:

  1. curl -X PUT "localhost:9200/twitter/_doc/1?pretty" -H 'Content-Type: application/json' -d'
  2. {
  3. "user" : "kimchy",
  4. "post_date" : "2009-11-15T14:12:12",
  5. "message" : "trying out Elasticsearch"
  6. }
  7. '

索引操作结果如下:

  1. {
  2. "_shards" : {
  3. "total" : 2,
  4. "failed" : 0,
  5. "successful" : 2
  6. },
  7. "_index" : "twitter",
  8. "_type" : "_doc",
  9. "_id" : "1",
  10. "_version" : 1,
  11. "_seq_no" : 0,
  12. "_primary_term" : 1,
  13. "result" : "created"
  14. }

_shard 头中提供了索引操作副本的处理信息。

  • total 显示索引操作应该在多少个分片(主分片核副本分片)上执行。
  • successful 显示索引操作在多少个分片上成功执行。
  • failed 索引操作在复制分片上失败时,返回一个复制分片相关错误的数组。

successful 值至少是一时,索引操作成功。

注意:

当索引操作成功返回时,复制分片可能并没有全部启动(默认情况下,仅主分片是必须的,但是该行为是可更改的)。在这种情况下,total 等于基于 number_of_replicas 设置的总分片数,successful 等于启动的分片数(主分片加副本分片)。如果没有任何错误,failed 会是 0。

自动创建索引

如果索引不存在,该操作会自动创建一个索引,并应用任何配置好的索引模板。如果没有的话,索引操作也会为特定的类型创建动态的类型映射。默认情况下,如果需要是,指定类型映射定义会自动添加新字段和对象。查看映射章节,获取更多的映射定义的信息,可以使用put mapping API 手动更新类型映射。
自动索引创建有设置 action.auto_create_index 控制。

原文:
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/docs-index_.html