在尝试使用纯 elasticsearch-painless 切换 PHP 代码时,我注意到即使文档在更新前后相同,文档也不会返回“noop”。
我不确定每次执行代码时更新版本是否有任何后果?它是如何扩展的?
views
如果在 中找不到身份,我只是想在访问期间更新帖子views_log
,并且想知道是否有办法修复“noop”返回,或者以某种方式取消更新?
我现在的代码如下所示:
$script = 'if (!ctx._source.views_log.contains(params.identity)) {
ctx._source.views_log.add(params.identity);
ctx._source.views += 1;
}';
$params = [
'index' => 'post',
'id' => 4861,
'body' => [
'script' => [
'source' => $script,
'lang' => "painless",
'params' => [
'identity' => $identifier
]
]
]
];
$response = $client->update($params);
遵循弹性搜索的文档:
ctx['op']:使用默认索引来更新文档。设置为 none 以指定无操作或 delete 以从索引中删除当前文档。
如果条件不满足,我尝试设置ctx.op
为none
,但这似乎不起作用。