企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Modifying Your Data(修改数据) 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_modifying_your_data.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_modifying_your_data.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260710](http://www.apache.wiki/pages/viewpage.action?pageId=4260710) 贡献者 : [那伊抹微笑](/display/~wangyangting),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) **Elasticsearch** 提供了近实时的操纵数据和搜索的能力。默认情况下,从您 **index**/**update**/**delete** 数据时到搜索结果中出现会有 **1** 秒的延迟(刷新间隔)。这是从其他平台例如 **SQL** 其中一个事务完成后数据是立即可用的一个重要区别。 ### Indexing/Replacing Documents(索引/替换 文档) 我们先前看到过我们是如何索引单个文档的。让我们再次调用该命令 :  ``` curl -XPUT 'localhost:9200/customer/external/1?pretty&pretty' -d' { "name": "John Doe" }' ``` 同样,上面的命令将索引指定的文档到 **customer** 索引,**external** 类型,**ID** 为 **1** 中。如果我们稍候使用不同的(或者相同的)文档来执行上面的命令,**Elasticsearch** 将在已存在的 **ID** 为 **1** 的文档替换(例如,**reindex**)成一个新的文档。 ``` curl -XPUT 'localhost:9200/customer/external/1?pretty&pretty' -d' { "name": "Jane Doe" }' ``` 上面将 **ID** 为 **1** 文档的名字从 “**John Doe**” 改成 “**Jane Doe**”。如果,在另一方面,我们使用不同的 **ID**,一个新的文档将会被索引并且已存在的文档仍然在索引中保持不变。 ``` curl -XPUT 'localhost:9200/customer/external/2?pretty&pretty' -d' { "name": "Jane Doe" }' ``` 上面将索引一个 **ID** 为 **2** 的新文档。 在索引时,**ID** 是可选项的一部分。如果不指定,**Elasticsearch** 将生产一个随机 **ID**,然后使用它去索引文档。**Elasticsearch** 生成的真实的 **ID**(或者我们在先前的例子中明确的指定)将作为索引 **API** 调用的一部分返回。 该例子演示了在没有明确的 **ID** 的情况下如何去索引一个文档 :  ``` curl -XPOST 'localhost:9200/customer/external?pretty&pretty' -d' { "name": "Jane Doe" }' ``` 注意,在上述的情况下,我们使用了 **POST** 动作,而不是 **PUT**,因为我们没有指定 **ID**。