|
|
<?php
|
|
|
|
|
|
namespace Lib\Es;
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 批量添加数据的类
|
|
|
* @author:dc
|
|
|
* @time 2025/8/6 16:37
|
|
|
* Class BulkData
|
|
|
* @package Lib\Es
|
|
|
*/
|
|
|
class BulkData {
|
|
|
|
|
|
/**
|
|
|
* @var string
|
|
|
*/
|
|
|
private array $data = [];
|
|
|
|
|
|
/**
|
|
|
* 添加数据
|
|
|
* @param string $index 必须全小写
|
|
|
* @param string $_id 指定文档id
|
|
|
* @param array $data
|
|
|
* @author:dc
|
|
|
* @time 2025/8/6 16:41
|
|
|
*/
|
|
|
public function add(string $index,string $_id, array $data){
|
|
|
$index = strtolower($index);
|
|
|
if(empty($this->data[$index])){
|
|
|
$this->data[$index] = [];
|
|
|
}
|
|
|
$this->data[$index][] = [
|
|
|
'_id' => $_id,
|
|
|
'_source' => $data,
|
|
|
];
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 转换成es可识别的数据
|
|
|
* @return array
|
|
|
* @author:dc
|
|
|
* @time 2025/8/6 16:42
|
|
|
*/
|
|
|
public function toParams():array {
|
|
|
$params = [];
|
|
|
foreach ($this->data as $index=>$item){
|
|
|
$params[] = [
|
|
|
'index' => [
|
|
|
'_index' => $index,
|
|
|
'_id' => $item['_id']
|
|
|
]
|
|
|
];
|
|
|
$params[] = $item['_source'];
|
|
|
}
|
|
|
return $params;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
...
|
...
|
|