Elasticsearch. Добавление данных
Добавление данных в Elasticsearch на примере создания сотрудника компании.
Примеры для:
Команда:
PUT /megacorp/employee/1 {
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
CURL:
$curl -XPUT 'http://localhost:9200/megacorp/employee/133434 ' -d '
{
"name":"John",
"last_name" :"Smith",
"age" :25,
"about" :"I love to go rock climbing",
"interests": [ "sports", "music" ]
}'
PHP:
Для добавления данных, нужно заполнить три ключа массива
index - аналог имени базы данных в MySQL.
type - аналог таблицы в MySQL.
body - документ. Аналог строки записи в таблице MySQL.
require 'vendor/autoload.php';
$client = Elasticsearch\ClientBuilder::create()->build();
$params = [
"index" => "megacorp",
"type" => "employee",
"body" => [
"first_name" => "John",
"last_name" => "Smith",
"age" => "25",
"about" => 'I love to go rock climbing',
"interests" => [ "sports", "music"]
]
];
$response = $client->index($params);
print_r($response); // Выводим результат индексирования.
Yii2:
В Yii2 работа с elasticsearch осуществляется при помощи класса yii\elasticsearch\ActiveRecord
Создаем модель. И объявляем класс с минимальными параметрами:
use yii\elasticsearch\ActiveRecord;
class Megacorp extends ActiveRecord
{
public static function index()
{
return 'megacorp';
}
public static function type()
{
return 'employee';
}
/**
Атрибуты. Важно указать. Иначе, данные не сохранятся.
*/
public function attributes()
{
return [
"first_name",
"last_name",
"age" ,
"about" ,
"interests"
];
}
/**
Правила. Важно указать. Иначе, данные не сохранятся.
Я, поставил всем атрибутам правила как безопасные.
В можете указать любые другие, которые вам необходимы.
*/
public function rules()
{
return [
[$this->attributes(), 'safe']
];
}
}
Сохраняем данные (индексируем в терминологии elasticsearch):
$model = new Megacorp();
$model->attributes = [
"first_name" => "John",
"last_name" => "Smith",
"age" => "25",
"about" => 'I love to go rock climbing',
"interests" => [ "sports", "music"]
];
$model->save();
Дополнительно
- Что такое Elasticsearch и как его установить
- Пример добавления данных в Elasticsearch с помощью CURL, PHP, Yii2
- Пример извлечения (получения) данных в Elasticsearch с помощью CURL, PHP, Yii2
- Пример поиска в Elasticsearch с помощью CURL, PHP, Yii2
- Пример управления индексами в Elasticsearch с помощью CURL, PHP, Yii2
- Параметры полей
Предыдущая часть: Elasticsearch. Что такое Elasticsearch и как его установить
Следующая часть: Пример извлечения (получения) данных в Elasticsearch с помощью CURL, PHP, Yii2
devreadwrite.com



Подборка адаптивных шаблонов для вашей CMS
Статьи по
Как получить и установить HTTPS сертификат на сайта

Комментарии
public static function index()
Ответить{
return 'megacorp';
}
public static function type()
{
return 'employee';
}
public static function index()
Ответить{
return 'megacorp';
}
public static function type()
{
return 'employee';
}
Для чего нужны эти два метода?
Первая функция указывает индекс (в понимании elasticsearch - это аналог базы данных в MySQL).
ОтветитьВторая функция указывает тип (похоже на имя таблицы в MySQL)
[requestMethod] => POST
[requestUrl] => http://127.0.0.1:9200/megacorp/employee?op_type=create [requestBody] => {"first_name":"John","last_name":"Smith","age":"25","about":"I love to go rock climbing","interests":["sports","music"]} [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 )
)Ответить