如何使用bash脚本处理弹性搜索资源_already_exists_exception



我对Elastic和bash脚本还很陌生。有人能帮我做下面的吗-如何跳过使用bash 创建已经存在的弹性索引

首先,我在bash脚本中创建一个映射-

#!/bin/bash
curl --user uid:password -X PUT **"https:localhost/newindex"** -H 'Content-Type: application/json' -d'{  "mappings": { "properties": {.....}}}}'

#然后我将数据添加到

curl --user uid:password -X POST **"https:localhost/newindex"** -H 'Content-Type: application/json' -d'{"date":"data..."...... }'

如果我第一次运行它,它会起作用,但当我第二次运行时,它会给我一个错误"resource_already_exists_exception">,如何使用bash脚本处理此问题

您可以使用--fail标志:

-f,--fail(HTTP(服务器错误时静默失败(根本没有输出(。这样做主要是为了更好地启用脚本等来更好地处理失败的尝试。在正常情况下,当HTTP服务器无法传递文档时,它会返回一个HTML文档来说明这一点(通常还会描述原因等(。该标志将阻止卷曲输出,并返回错误22。

如果命令成功,退出代码将为零,因此您可以检查:

curl --fail --user uid:password -X POST "https:localhost/newindex" -H 'Content- 
Type: application/json' -d'{"date":"data..."...... }'
if [ 0 -eq $? ]; then … fi;

最新更新