我尝试编写一段代码,负责从elasticsearch索引中删除索引文件,我使用索引文件md5传递(文件名),设置为id值。需要确保在从文件夹中删除文件时,删除代码由id(md5)被执行。我写了部分脚本,但我理解它是不正确的,因为如果没有文件,那么md5将不会被创建,请帮助)
<?php
$path = __DIR__ . ("/uploads/Арне.pptx");
$filename = basename($path);
$md5 = md5_file($path);
print($md5); //Передаю переменную md5 в 'id' индексации elasticsearch
//echo 'MD5-хеш файла ' . $filename . ': ' . md5_file($path);
if (empty(md5_file($path))) {//Провожу проверку, если md5 не совпадает с именем файла в папке
$params = [ //Произвожу удаление индекса из ES
'index' => 'bower',
'id' => $md5
];
$respose = $client->delete($params);
} else {
echo '' . ' есть, файл существует';
}
2条答案
按热度按时间siotufzp1#
您需要使用删除索引方法而不是删除文档:
jmo0nnb32#
您可以关闭该主题,问题已解决。已解决问题:迭代uploads文件夹中的数组,并迭代elasticsearch数组id,然后使用array_diff,比较数组以排除不在uploads文件夹中但在elasticsearch索引中的文件