Maison  >  Article  >  développement back-end  >  Développer des invites de recherche rapides à l'aide de PHP et Manticore Search

Développer des invites de recherche rapides à l'aide de PHP et Manticore Search

WBOY
WBOYoriginal
2023-08-05 22:25:05707parcourir

Utilisez PHP et Manticore Search pour développer une fonction d'invite de recherche rapide

Introduction

De nos jours, avec le développement d'Internet, les moteurs de recherche sont devenus l'un des principaux outils permettant aux utilisateurs d'obtenir des informations. Les utilisateurs utilisent généralement des mots-clés pour interroger le contenu qui les intéresse, et les moteurs de recherche renverront des résultats pertinents en fonction de ces mots-clés.

Cependant, les méthodes de recherche traditionnelles présentent certaines limites. Les utilisateurs doivent saisir des mots-clés complets pour obtenir des résultats précis, ce qui peut augmenter le temps d'attente de l'utilisateur. Pour améliorer l'expérience utilisateur, nous pouvons envisager d'utiliser la fonctionnalité d'invites de recherche rapide, qui permet aux utilisateurs d'obtenir instantanément des suggestions de recherche pertinentes lors de la saisie de mots clés.

Dans cet article, nous présenterons comment utiliser PHP et Manticore Search pour implémenter la fonction d'invite de recherche rapide.

Introduction à Manticore Search

Manticore Search est un moteur de recherche en texte intégral open source qui est un fork de Sphinx Search et offre des performances plus élevées et plus de fonctionnalités.

Manticore Search fournit une fonction appelée « achèvement » pour implémenter les invites de recherche. En créant des index appropriés et en utilisant des instructions de requête appropriées, nous pouvons obtenir des suggestions de recherche rapides et précises.

Préparation

Avant de commencer, nous devons installer Manticore Search et nous assurer que PHP prend en charge la communication avec Manticore Search. Nous pouvons installer l'extension appropriée via la commande pecl : pecl命令来安装相关的扩展:

pecl install manticore

安装成功后,我们需要在PHP的扩展配置文件中启用这个扩展。我们可以在php.ini中添加以下行:

extension=manticore.so

重启PHP以使更改生效。

建立索引

在我们开始之前,我们需要准备一些数据并建立相应的索引。假设我们有一个名为"products"的表,包含了产品的名称和描述。

我们可以使用以下代码来建立索引:

<?php

require_once 'ManticoreSearch.php';

$client = new ManticoreSearchClient([
    'host' => 'localhost',
    'port' => 9306,
]);

$client->connect();

$index = 'products';
$table = 'products';

$client->query("DELETE FROM $table WHERE 1");
$client->query("TRUNCATE RTINDEX $index");

$data = [
    ['id' => 1, 'name' => 'iPhone X', 'description' => 'A revolutionary new iPhone.'],
    ['id' => 2, 'name' => 'Samsung Galaxy S9', 'description' => 'The latest Samsung smartphone.'],
    ['id' => 3, 'name' => 'Google Pixel 3', 'description' => 'A powerful Android phone.'],
    // 添加更多产品数据...
];

$client->index($table, $data);
$client->query("ALTER RTINDEX $index ADD COLUMN completion TEXT");

$client->disconnect();
?>

在上面的代码中,我们首先创建一个Client实例,然后使用connect方法连接到Manticore Search服务。接下来,我们清空并重建相应的表和索引。

接着,我们向表中添加一些产品的数据。确保将实际的产品数据添加到$data数组中。

最后,我们使用ALTER RTINDEX命令向索引添加一个用于存储搜索提示的列。

创建搜索提示

现在,我们已经准备好了数据和索引,可以开始创建搜索提示了。我们可以使用以下代码来实现:

<?php

require_once 'ManticoreSearch.php';

$client = new ManticoreSearchClient([
    'host' => 'localhost',
    'port' => 9306,
]);

$client->connect();

$index = 'products';
$table = 'products';

$keyword = isset($_GET['keyword']) ? $_GET['keyword'] : '';

$query = "SELECT * FROM $index WHERE MATCH(:keyword) OPTION field_weights=(name=10, description=5) LIMIT 10";
$params = [
    'keyword' => "@(name,description) $keyword*",
];

$result = $client->query($query, $params);

$suggestions = [];

if ($result !== false) {
    foreach ($result['hits'] as $hit) {
        $suggestions[] = $hit['attrs']['name'];
    }
}

$client->disconnect();

echo json_encode($suggestions);
?>

在上面的代码中,我们首先创建一个Client实例并进行连接。然后,我们定义了一个$keyword变量,用于存储用户输入的关键字。

接着,我们使用SELECT语句来执行查询。通过将用户输入的关键字作为查询的一部分,并使用MATCH子句来匹配索引中的内容,我们可以获取与关键字匹配的结果。

在这个例子中,我们对namerrreee

Après une installation réussie, nous devons activer cette extension dans le fichier de configuration de l'extension PHP. On peut ajouter la ligne suivante dans php.ini :

rrreee

Redémarrez PHP pour que les modifications prennent effet.

Indexation

Avant de commencer, nous devons préparer certaines données et créer les index correspondants. Supposons que nous ayons un tableau appelé « produits » qui contient les noms et les descriptions des produits.

Nous pouvons utiliser le code suivant pour construire l'index : 🎜rrreee🎜Dans le code ci-dessus, nous créons d'abord une instance Client puis nous nous connectons au service Manticore Search en utilisant le connect code> méthode . Ensuite, nous vidons et reconstruisons les tables et index correspondants. 🎜🎜Ensuite, nous ajoutons quelques données de produits au tableau. Assurez-vous d'ajouter les données réelles du produit au tableau <code>$data. 🎜🎜Enfin, nous utilisons la commande ALTER RTINDEX pour ajouter une colonne à l'index pour stocker les conseils de recherche. 🎜🎜Créer des conseils de recherche🎜🎜Maintenant que nos données et notre index sont prêts, nous pouvons commencer à créer des conseils de recherche. Nous pouvons utiliser le code suivant pour y parvenir : 🎜rrreee🎜 Dans le code ci-dessus, nous créons d'abord une instance Client et nous nous connectons. Ensuite, nous définissons une variable $keyword pour stocker le mot-clé saisi par l'utilisateur. 🎜🎜Ensuite, nous utilisons l'instruction SELECT pour exécuter la requête. En incluant les mots-clés saisis par l'utilisateur dans le cadre de la requête et en utilisant la clause MATCH pour faire correspondre le contenu de l'index, nous pouvons obtenir des résultats qui correspondent aux mots-clés. 🎜🎜Dans cet exemple, nous accordons un poids plus élevé au champ name. Vous pouvez ajuster le poids du champ en fonction de la situation réelle. 🎜🎜Enfin, nous convertissons les suggestions de recherche au format JSON et les affichons. 🎜🎜Conclusion🎜🎜Dans cet article, nous avons appris à utiliser PHP et Manticore Search pour implémenter une fonctionnalité d'invite de recherche rapide. En créant des index appropriés et en utilisant les bonnes instructions de requête, nous pouvons permettre aux utilisateurs d'obtenir instantanément des suggestions de recherche pertinentes lorsqu'ils saisissent des mots clés. Cette approche peut grandement améliorer l'expérience de recherche de l'utilisateur. 🎜🎜En raison du manque d'espace, cet article ne fournit qu'un simple exemple de code, que vous pouvez modifier et étendre en fonction de vos besoins. J'espère que cet article pourra vous aider à explorer davantage et à utiliser Manticore Search pour créer des capacités de recherche plus puissantes. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn