我正在使用下面的内联脚本和update by query来更新弹性中的approved=true
和时间戳LastModifiedDate
。
POST /limp-access/_update_by_query
{
"query": {
"terms": {
"_id": [
"asdasfasf-laHg5qeld",
"asdfadfdfdsf-asdasd"
]
}
},
"script":{
"source": "ctx._source.approved = true; ctx._source.fields.lastModifiedDate = ['2019-05-21T06:16:05.133Z'];"
}
}
问题是有些文档根本没有lastmodifieddate
这个字段。所以当它遇到这样的doc时,它会以空指针表达式失败。有没有一种方法可以忽略这样的文档,并在找到它的地方更新它?
{“error”:{“root_cause”:[{“type”:“script_exception”,“reason”:“运行时错误”,“script_stack”:[“ctx._source.fields.lastModifieddate=['2019-05-21T06:16:05.133z'];”,“^----此处”],“script”:“ctx._source.fields.lastModifieddate=['2019-05-21T06:16:05.133z'];”,“lang”:“painless”}],“type”:“
如果其中一个ID没有fields
字段,我希望它被忽略,并使用脚本更新找到fields
字段的其余文档。这可能吗?
然后像这样简单地更新您的脚本:
"source": "ctx._source.approved = true; if (ctx._source.fields != null) { ctx._source.fields.lastModifiedDate = ['2019-05-21T06:16:05.133Z'];}"
问题内容: 我处于必须更新数据库中约12,000个项目的情况。每行都需要镜像我之前制作的一个excel文件。我已经创建了创建SQL语句每一行的文件,但是不确定是否可以在单个查询中运行每一行。 这是我正在尝试做的一个例子。 这项工作有效吗,或者我要实现的目标还有更好的选择吗? 每个项目将具有唯一值,并且要更改的列也将具有唯一值。我看不到如何通过循环或到目前为止找到的任何其他方法来实现此目的。我意识到
问题内容: 我是现代JS开发的新手,因此我需要有关此情况的帮助或建议。 情况: 我们有一个支持IE8(React 0.14)的React-Typescript-Redux项目。现在我们要升级到IE11和React 16,但应该支持IE8。 要求: 通过为每个构建使用不同的软件包和/或配置文件,减少浏览器版本之间的项目维护。 问题: 根据我到目前为止所做的研究,似乎无法通过选定的工具(npm,Web
假设我有一个类似下面的函数checkTime,我必须同时检查多个条件。 (上述示例是假设的) 我使用的函数完全有效,但是: 有没有更好的方法、程序或公式来取代这一点?(不必如此冗长或丑陋) Thanx!
问题内容: 如何通过所有多词搜索仅获取经过过滤的匹配结果。我有这个示例表,其中titleid是一个映射int字段,personid是一个关键字: 删除结果为: 使用这样的示例查询: 我得到以下结果: 也许这会有所帮助,我在sql中进行了查询并获得了预期的结果。我所做的是让查询给我与搜索到的参数数量匹配的titleid之和。这只是为了更多地自我解释,其思想是使用elasticsearch。 问题答案
问题内容: 我想知道存储过程中是否可以有多个Update语句 像这样的东西: 现在,我将单独执行它们,但是由于它们只能一起使用,所以我想知道它们是否可以仅位于一个SP中。 问题答案: 是的,有可能:
问题内容: 我正在学习加入班级的课程,但是我没有完全掌握其中的一些概念。有人可以解释具有多个联接的语句如何工作吗? 我相信我知道BOOKS表是连接BOOKS和ORDERITEMS的第一个外部联接中的左表。即使没有书的ORDERITEM,也会显示所有的BOOKS。第一次加入后,我不确定真正发生了什么。 当ORDERS加入时,哪个是左表,哪个是右表?客户也一样。这是我迷路的地方。 问题答案: 执行者将