自动生成文档ID时,在弹性搜索中更新文档

时间:2015-03-05 03:50:37

标签: json elasticsearch

我有以下脚本用于将json文档插入弹性搜索数据库。

for file in /home/ec2-user/Workspace/met_parts/*
 do curl -XPOST "http://localhost:9200/ABCD/met/" -d @$file
done

我有一个' n'我的met_parts文件夹中的文件,每个文件包含JSON记录,如下所示。

        {
            "Application": "xxxxxxxx", 
            "FirstTime": 1425502958958, 
            "LastHost": "127.0.0.1", 
            "Transactions": "88654"
        }

我的met_parts文件夹每小时更新一次。所以我需要每小时运行一次上面的脚本。当我第二次curl -XPOST时,我希望更新现有文档,而不是而不是要插入的新对象。我该如何实现这一目标?由于我使用XPOSTdocument id会自动生成弹性搜索。

1 个答案:

答案 0 :(得分:2)

如果没有id,您将无法更新文档。您应该使用id创建文档,以便您知道稍后要更新的文档。您可以使用以下命令索引具有给定标识的文档。

POST <index name>/<type name>/<document id>
{
    ...
}

请注意,您还可以使用字符串作为文档ID。