修改你的数据
Elasticsearch提供近乎实时的数据操控和查询能力. 默认情况下, 你可以期望从你索引/更新/删除你的数据到他们出现在你的查询中只有1秒的延迟(刷新间隔). 这是一个和其他类似于SQL之类的平台的巨大区别. 他们的数据在事务完成后会立刻生效.
索引/替换文档
之前我们已经看到如何索引一个文档, 现在我们再次执行那条命令
PUT /customer/_doc/1?pretty
{
"name": "John Doe"
}
同样, 上面的代码会索引一个ID为1的指定文档到customer索引里. 如果我们用一个不同的(或是相同的)文档再次执行以上命令. Elasticsearch会在ID为1的文档上面替换(重新索引)为新的文档.
PUT /customer/_doc/1?pretty
{
"name": "Jane Doe"
}
上面的命令会把ID为1的文档的name从"John Doe"改为"Jane Doe". 另一方面, 如果我们用了一个不同的ID, 一个新的文档会被索引, 而且以前的文档不会有任何改变.
PUT /customer/_doc/2?pretty
{
"name": "Jane Doe"
}
上面的代码索引了一个ID为2个新文档.
索引文档的时候, ID是可选的. 如果没有指定的话, Elasticsearch会生成一个随机的ID, 然后这个ID来索引文档. Elasticsearch生成的ID(或是我们前面显示指定的ID), 都会作为索引API的一部分返回给我们.
下面的例子展示了, 不指定ID索引一个文档.
POST /customer/_doc?pretty
{
"name": "Jane Doe"
}
注意上面的例子, 因为我们没有指定ID, 所以我们用POST请求代替了PUT请求.