我正在尝试构建一个搜索引擎。我正在使用Php和elasticsearch。 无法手动执行base64编码并索引文件夹中的每个文件。 这些文件大多是Word或PDF格式。我已经添加了我最近尝试实现此目的的代码,但它没有用。
<?php
$dir_path="yellow";
require 'vendor/autoload.php';
$client= Elasticsearch\ClientBuilder::create()->build();
if(is_dir($dir_path))
{
$files=opendir($dir_path);
if($files)
{
while(($file_name= readdir($files))!== FALSE)
{
if($file_name!=="."&$file_name!=="..")
{
$params= [
'index'=>'try',
'type'=>'mytype',
'body'=>[
'my_attachment' =>[
"cv" => base64_encode(file_get_contents("$dir_path/$file_name")) ] ]
];
$response= $client->index($params);
echo $response;
}
}
}
}
?>
此代码返回“注意:数组到字符串转换”错误,而不是生成确认。 提前致谢
答案 0 :(得分:0)
尝试替换
'body'=>[
'my_attachment' =>[
"cv" => base64_encode(file_get_contents("$dir_path/$file_name")) ] ]
与
'body' => [
'my_attachment' =>
base64_encode(file_get_contents("$dir_path/$file_name"))
]