Задать вопрос
@Snewer

Почему не добавляются данные в Elasticsearch?

Здравствуйте!

Имеется ActiveRecord Elasticsearch модель:
<?php

namespace app\models;

use \yii\elasticsearch\ActiveRecord;

class Test extends ActiveRecord {

    function attributes()
    {
        return ['message', 'timestamp'];
    }

    function rules()
    {
        return [
            [$this->attributes(), 'safe']
        ];
    }

}


Далее в тестовом контроллере вставляю запись:
$q = new \app\models\Test();
$q->attributes = [
    'message' => 'Сообщение',
    'timestamp' => time(),
];
// $q->primaryKey = 1;
$q->save();


если не указывать primaryKey, то запись не вставляется:
Elasticsearch Database Exception – yii\elasticsearch\Exception

Elasticsearch request failed with code 400.
Error Info: Array
(
    [requestMethod] => POST
    [requestUrl] => http://127.0.0.1:9200/tests/test?op_type=create
    [requestBody] => {"message":"Сообщение","timestamp":1477937279}
    [responseCode] => 400
    [responseHeaders] => Array
        (
            [content-type] => application/json; charset=UTF-8
            [content-length] => 311
        )

    [responseBody] => Array
        (
            [error] => Array
                (
                    [root_cause] => Array
                        (
                            [0] => Array
                                (
                                    [type] => action_request_validation_exception
                                    [reason] => Validation Failed: 1: an id must be provided if version type or value are set;
                                )

                        )

                    [type] => action_request_validation_exception
                    [reason] => Validation Failed: 1: an id must be provided if version type or value are set;
                )

            [status] => 400
        )

)


в чем причина? версия ES 5.0.0
  • Вопрос задан
  • 1142 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
1 укажите праймери кей
2 сделайте тоже самое руками
Ответ написан
@vito8877
Просто Yii2 пока (22.02.2017) поддерживает elasticsearch только до версии 4.x (5 версии не поддерживаются)
https://github.com/yiisoft/yii2-elasticsearch
This extension works with elasticsearch version 1.0 to 4.x. elasticsearch 5.0 is currently not supported.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы