Développement de recherche PHP et Manticore : conseils pour améliorer le classement des résultats de recherche
Les moteurs de recherche font partie intégrante des applications Internet modernes. Le classement des résultats de recherche affecte directement l’expérience utilisateur et la précision de la recherche. Dans cet article, nous aborderons des conseils sur la façon d'améliorer le classement des résultats de recherche pendant le développement à l'aide de PHP et Manticore Search.
Tout d'abord, nous devons installer Manticore Search. Il peut être installé sur Ubuntu via la commande suivante :
sudo apt-get install manticoresearch
Une fois l'installation terminée, démarrez le service Manticore Search :
sudo service manticoresearch start
Tout d'abord, nous devons importer les données dans Manticore Search. Ici, nous utiliserons un exemple simple, en supposant que nous disposons d'un site Web de commerce électronique contenant des informations relatives au produit telles que le nom du produit, la description, le prix, etc.
Pour faciliter la démonstration, nous créons un index nommé « produits » et ajoutons quelques exemples de données :
<?php // 连接Manticore Search服务 $dsn = 'mysql:host=127.0.0.1;port=9306'; $username = ''; $password = ''; $pdo = new PDO($dsn, $username, $password); // 创建索引 $sql = "CREATE TABLE products ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, description TEXT, price FLOAT(10,2) NOT NULL ) ENGINE = Manticore;"; $pdo->exec($sql); // 添加示例数据 $productData = [ ['name' => 'iPhone 12', 'description' => 'The latest iPhone model', 'price' => 999.99], ['name' => 'Samsung Galaxy S21', 'description' => 'Powerful Android phone', 'price' => 799.99], ['name' => 'Google Pixel 5', 'description' => 'Flagship Google phone', 'price' => 699.99], ]; foreach ($productData as $product) { $sql = "INSERT INTO products (name, description, price) VALUES (?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$product['name'], $product['description'], $product['price']]); } echo 'Data imported successfully!';
Ensuite, implémentons une fonction de recherche de base. Les utilisateurs peuvent rechercher des noms et des descriptions de produits par mots-clés et renvoyer des listes de produits associées. Nous pouvons utiliser la fonction de recherche en texte intégral fournie par Manticore Search pour y parvenir.
<?php // 连接Manticore Search服务 $dsn = 'mysql:host=127.0.0.1;port=9306'; $username = ''; $password = ''; $pdo = new PDO($dsn, $username, $password); // 执行搜索 $keyword = 'iPhone'; $sql = "SELECT * FROM products WHERE MATCH (:keyword)"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':keyword', $keyword); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); // 显示搜索结果 foreach ($results as $result) { echo 'Product Name: ' . $result['name'] . PHP_EOL; echo 'Description: ' . $result['description'] . PHP_EOL; echo 'Price: ' . $result['price'] . PHP_EOL; echo '------------------------' . PHP_EOL; }
Afin d'améliorer le tri des résultats de recherche, nous pouvons utiliser la fonction de tri de Manticore Search. Nous pouvons trier les résultats de la recherche selon différents champs, tels que le prix, le volume des ventes, etc.
Voici un exemple de tri des résultats de recherche en fonction du prix du produit :
<?php // 连接Manticore Search服务 $dsn = 'mysql:host=127.0.0.1;port=9306'; $username = ''; $password = ''; $pdo = new PDO($dsn, $username, $password); // 执行搜索 $keyword = 'iPhone'; $sql = "SELECT * FROM products WHERE MATCH (:keyword) ORDER BY price DESC"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':keyword', $keyword); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); // 显示搜索结果 foreach ($results as $result) { echo 'Product Name: ' . $result['name'] . PHP_EOL; echo 'Description: ' . $result['description'] . PHP_EOL; echo 'Price: ' . $result['price'] . PHP_EOL; echo '------------------------' . PHP_EOL; }
Dans cet exemple, nous trions le prix par ordre décroissant par ORDER BY price DESC
. ORDER BY price DESC
对价格进行降序排序。
除了价格,我们还可以根据其他字段进行排序,比如销量、评分等。只需相应地修改ORDER BY
ORDER BY
en conséquence. RésuméCet article présente comment utiliser PHP et Manticore Search pour développer des fonctions de recherche et fournit quelques conseils pour améliorer le classement des résultats de recherche. Grâce à ces techniques, nous pouvons effectuer un tri ciblé des résultats de recherche en fonction de différents besoins et scénarios, améliorant ainsi l'expérience utilisateur et la précision de la recherche. J'espère que cet article pourra vous aider à résoudre les problèmes que vous rencontrez lors de l'optimisation du tri des résultats de recherche dans le développement PHP. Bonne chance dans vos efforts de développement ! 🎜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!