Как я могу интегрироватьasticsearch в mysql, используя php - PullRequest
1 голос
/ 17 января 2020

Я работал над проектом, который требуется для использования эластичного поиска. Я следовал руководству: https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html Это прекрасно работает для меня:

require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$hosts = [
    'myhost'
];
$client = ClientBuilder::create()           // Instantiate a new ClientBuilder
                    ->setHosts($hosts)      // Set the hosts
                    ->build();  
$params = [
    'index' => 'php-demo-index',

    'type' => 'doc',
    'id'    => 'my_id',
    'body'  => ['testField' => 'abc']
];

$response = $client->index($params);
print_r($response);

Теперь это только базовая вещь c. Теперь я хочу интегрировать это с Mysql, т.е. когда я обновляю или вставляю в свою таблицу в базе данных, она автоматически индексируется вasticsearch. Я знаю, что у нас есть Logsta sh, который может постоянно запрашивать БД по истечении заданного интервала времени и индексировать вasticsearch. Но я хочу, чтобы индексирование происходило автоматически после вставки в БД с использованием PHP без logsta sh. Я знаю такую ​​библиотеку в (nodeJs + mongodb) ie. mongoosastics: https://www.npmjs.com/package/mongoosastic. Есть ли в php какая-либо библиотека, которая может выполнить такую ​​задачу автоматически. Пожалуйста, предоставьте мне пример кода, если вы его знаете.

1 Ответ

0 голосов
/ 17 января 2020

Действительно, есть библиотеки для автоматизации этой задачи. Однако, как правило, требуется использование ORM , как Doctrine, чтобы корректно подключиться к реализации вашей базы данных. Если вы можете использовать в своем проекте фреймворк Symfony, есть библиотека FOSElasticaBundle , которая поддерживает ваши индексы в синхронизации c с операциями с базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...