Создаю веб сервис, использую ElasticSearch в качестве основного хранилища данных.
Есть метод регистрации, когда на него прилетает запрос он создаёт нового юзера, это проходит на ура, но вот при создании типа для хранения записей о друзьях пользователя, возникает ошибка.
User.php:
$client = ClientBuilder::create()->build();
$user = array(
"login" => $login,
"email" => $email,
"avatar_url" => $avatar_url,
"password" => $password,
"email_verify" => false,
"email_verify_id" => $email_verify_id,
"user_token" => $user_token,
"g-balance" => 0,
"register_time" => time(),
"last_query_time" => time(),
"receive_bonuses" => 0,
"total_playtime" => 0,
"games" => array(
$game_name => array(
"playtime" => 0,
"level" => 0,
"save" => "",
),
),
);
$params = array(
"index" => "socket-apps-db",
"type" => "users",
"id" => mb_strtolower($login),
"body" => $user
);
$database_response = $client->index($params);
if($database_response["result"] == "created"){
return array(
"status" => true,
);
}else{
return array(
"status" => false,
);
}
UserFriends.php:
$client = ClientBuilder::create()->build();
$params = array(
"index" => "socket-apps-friends",
"type" => mb_strtolower($login),
"body" => array(),
);
$client->index($params);
При запросе на API первого юзера вставляет, создает все индексы, все прекрасно, а вот на вторую регистрацию отвечает:
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Rejecting mapping update to [socket-apps-friends] as the final mapping would have more than 1 type: [socketsystem, hoo]"}],"type":"illegal_argument_exception","reason":"Rejecting mapping update to [socket-apps-friends] as the final mapping would have more than 1 type: [socketsystem, hoo]"},"status":400}
Это связано с маппингом, но я не знаю как решить данную проблему.