Utilisez PHP et Manticore Search pour développer un moteur de recherche avec synchronisation des données en temps réel
Les moteurs de recherche jouent un rôle important à l'ère de l'information d'aujourd'hui. Avec le développement rapide d'Internet, la demande des utilisateurs pour les moteurs de recherche est également de plus en plus élevée. Les moteurs de recherche traditionnels mettent généralement un certain temps à synchroniser les dernières données, ce qui est insuffisant dans certains scénarios nécessitant des données en temps réel. Afin de résoudre ce problème, cet article présentera comment utiliser PHP et Manticore Search pour développer un moteur de recherche avec synchronisation des données en temps réel.
Tout d’abord, comprenons ce qu’est Manticore Search. Manticore Search est un moteur de recherche de texte open source hautes performances qui offre des capacités de recherche en texte intégral efficaces et d'indexation en temps réel. Il prend en charge les requêtes SQL et la syntaxe de requête JSON similaire à Elasticsearch et convient à divers scénarios d'application, des petits sites Web aux grandes plates-formes de données. Manticore Search se caractérise par une vitesse rapide, une prise en charge de l'indexation en temps réel et un déploiement distribué, ce qui en fait un choix idéal pour développer des moteurs de recherche avec synchronisation des données en temps réel.
Tout d’abord, nous devons nous assurer que les dernières versions de PHP et de Manticore Search sont installées. Vous pouvez vérifier la version en entrant la commande suivante dans le terminal ou l'invite de commande :
php -v searchd --help | grep Manticore
Si le numéro de version affiché est le plus récent, nous pouvons alors passer à l'étape suivante.
Ensuite, nous devons introduire la bibliothèque client Manticore Search dans le projet PHP. Ceci peut être réalisé en enregistrant le code suivant en tant que fichier manticore.php
et en l'introduisant dans le projet : manticore.php
文件,并在项目中引入该文件来实现:
<?php require 'vendor/autoload.php'; use ManticoresearchClient; use ManticoresearchIndex; $host = 'localhost'; $port = 9308; $client = new Client(['host' => $host, 'port' => $port]); $index = new Index($client); $index->setIndex('example_index'); // 在这里进行索引的创建、删除、更新等操作
现在,我们创建一个名为example_index
$index->create(['columns' => [ ['name' => 'title', 'type' => 'text', 'options' => ['indexed' => true, 'stored' => true]], ['name' => 'content', 'type' => 'text', 'options' => ['indexed' => true, 'stored' => true]], ]]);
example_index
, et pouvons effectuer quelques opérations dans cet index. Voici quelques exemples courants d'opérations : $index->drop();
$index->bulk('insert', [ ['index' => ['_id' => 1, 'title' => '文章标题1', 'content' => '文章内容1']], ['index' => ['_id' => 2, 'title' => '文章标题2', 'content' => '文章内容2']], ]);
$index->bulk('update', [ ['update' => ['_id' => 1, 'doc' => ['title' => '新的标题1']]], ['update' => ['_id' => 2, 'doc' => ['title' => '新的标题2']]], ]);
$index->bulk('delete', [ ['delete' => ['_id' => 1]], ['delete' => ['_id' => 2]], ]);
$query = [ 'index' => 'example_index', 'body' => [ 'query' => [ 'match' => [ 'title' => '关键词', ], ], ], ]; $result = $client->search($query); foreach ($result['hits']['hits'] as $hit) { echo $hit['_source']['title'] . ': ' . $hit['_source']['content'] . " "; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!