Поле Mysql json и алголияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Поле Mysql json и алголия

Сообщение Anonymous »

я хочу добавить эту таблицу в алголию:

+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| data | json | NO | | NULL | |
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
+-------+------------------+------+-----+---------+----------------+

В этой таблице только одна строка и содержимое данных:

[
{
"id":"7cc481e3eab24b4ef9ccc945c00f7784",
"desc":"shirts desc",
"name":"Shirts",
"slug":"shirts",
"image":"7cc481e3eab24b4ef9ccc945c00f7784.jpeg",
"categories":[

]
},
{
"id":"67d188521fa8531dd3e2044814cb942342",
"desc":"some desc",
"name":"Jackets",
"slug":"jackets",
"image":"67d188521fa8531dd3e2044814cb942342.jpeg",
"categories":[
{
"id":"671a83b87369ee6773774c0d6d4455e2",
"desc":"sealed desc",
"name":"Sealedq",
"slug":"sealedq",
"image":""
}
]
},
{
"id":"ad03b6be35714f7bb7f2ecc82d512c79",
"desc":"some desc",
"name":"Trousers",
"slug":"trousers",
"image":"ad03b6be35714f7bb7f2ecc82d512c79.jpg"
},
{
"id":"ea265cbc18db7ad6b3a3013af3070890",
"desc":"some desc",
"name":"Sweaters",
"slug":"sweaters",
"image":"ea265cbc18db7ad6b3a3013af3070890.jpeg"
}
]


все это работает с Laravel 5.2.
когда я отправляю эти данные в algolia, он создаст только одну запись и установит идентификатор объекта в идентификатор таблицы.
/>
Изображение


Как я могу отправить только поле данных в алголию и установите идентификатор поле данных как objectID?

Я использую этот код только для проверки, и он у меня работает, но я думаю, что это неправильный путь, возможно, мне следует использовать синонимы.

$client = new AlgoliaSearch\Client("AppID", "AdminKey");
$index = $client->initIndex('catalog');

$results = Model::select('data')->first();
$results = json_decode($results->data, true);
if ($results)
{
$batch = array();
// iterate over results and send them by batch of 10000 elements
foreach ($results as $row)
{
// select the identifier of this row
$row['objectID'] = $row['id'];

array_push($batch, $row);

}

return $index->saveObjects($batch);
}


Подробнее здесь: https://stackoverflow.com/questions/395 ... nd-algolia
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»