数据修改
ElasticSearch提供近实时的数据操作和搜索功能。默认情况下,从索引/更新/删除数据到数据出现在搜索结果中,您可以期待一秒钟的延迟(刷新间隔)。这是与其他平台(如SQL)的一个重要区别,在SQL中,数据在事务完成后立即可用。
索引替换文档:
我们以前见过如何索引单个文档。让我们再次回忆一下这个命令:
由于每次都要编辑kibana 和全路径比较繁琐,之后使用--------------------,做区分
PUT /customer/_doc/1?pretty
{
"name": "John Doe"
}
----------------------------
curl -X PUT "localhost:9200/customer/_doc/1?pretty&pretty" -H 'Content-Type: application/json' -d'
{
"name": "John Doe"
}
'
同样,上面将把指定的文档索引到客户索引中,ID为1。如果我们用不同的(或相同的)文档再次执行上述命令,那么ElasticSearch将在现有文档的基础上替换(即重新索引)一个ID为1的新文档:
PUT /customer/_doc/1?pretty
{
"name": "Jane Doe"
}
--------------------------------
curl -X PUT "localhost:9200/customer/_doc/1?pretty&pretty" -H 'Content-Type: application/json' -d'
{
"name": "Jane Doe"
}
'
上面将ID为1的文档的名称从“John Doe”更改为“Jane Doe”。另一方面,如果我们使用不同的ID,则将为新文档编制索引,并且索引中已有的文档将保持不变。
PUT /customer/_doc/2?pretty
{
"name": "Jane Doe"
}
-----------------------------
curl -X PUT "localhost:9200/customer/_doc/2?pretty&pretty" -H 'Content-Type: application/json' -d'
{
"name": "Jane Doe"
}
'
上面的索引是一个ID为2的新文档。
索引时,ID部分是可选的。如果未指定,ElasticSearch将生成一个随机ID,然后使用它为文档编制索引。ElasticSearch生成的实际ID(或在前面的示例中显式指定的任何内容)作为索引API调用的一部分返回。
此示例演示如何索引没有显式ID的文档:
POST /customer/_doc?pretty
{
"name": "Jane Doe"
}
---------------------------------
curl -X POST "localhost:9200/customer/_doc?pretty&pretty" -H 'Content-Type: application/json' -d'
{
"name": "Jane Doe"
}
'
注意,在上述情况下,我们使用的是POST而不是Put,因为我们没有指定ID。